IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ QT图形界面设计(1):基本类和语法框架认知 -> 正文阅读

[C++知识库]C++ QT图形界面设计(1):基本类和语法框架认知

1.helloworld代码框架(QT初认知)

int main(int argc,char *argv[])//程序台控制参数不要乱删,删了就启动不了了
{
  //1.a应用程序对象,在QT中,应用程序对象有且只有一个
  QApplication a(argc,argv);

  //2.窗口对象
  MainWindow w;
  //调用w对象的show方法
  w.show();
  
  
  //--应用程序对象进入消息循环
  //--等待一些消息传递给窗口
  //--让代码阻塞,后面代码是不执行的
  return a.exec();
}

消息循环:这是QT类提供的一个机制,为后续的用户操作提供一个缓冲时间,想好逻辑。

环境使用部署:当需要用到QT中某个方面的比如网络通信这些的时候,需要在.pro文件里面的QT+=那一行指明你加了什么进去
比如说我要用网络通信功能,那么我就应当QT+=core gui network 加上去,实际上在编译过程中会自动添加这些东西进去

2.常用组件:QPushButton以及窗体基本api

头文件:#include < QPushButton >

button使用方法以及绑定方法

  //1.按钮对象创建方法
  QPushButton * btn=new QPushButton();

  //2.按钮指定显示的窗口
  btn->setParent(qw);
  
  //3.显示文本
  btn->setText("登录");

传递参数方法

  QWidget qw;
  QuickDemo qd;
  qd.buttonTest(&qw);
  qw.show();

重置窗口大小方法是resize
移动组件方法是调用其**move()**方法
设置窗口标题是调用其setWindows方法
设置窗口大小使用setFixedSize()方法
除此之外button也可以调整大小

3.常用基类介绍

1.QMainWindow 是主窗口类,主窗口具有主菜单栏、工具栏和状态栏,类似于一般的应用程序的主窗口;
2.QWidget 是所有具有可视界面类的基类,选择 QWidget 创建的界面对各种界面组件都可以 支持;
3.QDialog 是对话框类,可建立一个基于对话框的界面

4.基本页面布局以及按钮信号槽使用

信号槽
信号槽的使用基本是用于button,用于提交用户数据等,主要绑定方法是右键button然后转到槽,选择clicked(),然后就会自动生成函数,在函数里面编写页面逻辑即可

跳转页面
跳转页面首先需要新建一个页面,可以是mainWiindows(带有菜单栏,使用起来比较方便),也可以是Widget,然后在原页面的头文件里面加上包含新页面的头文件,然后在private里面加入新页面的指针,然后再跳转函数里面调用这个指针就可以了。

  mtb=new MainTable();
  mtb->show();

页面数据提交
首先需要设定好交互框,一般来说,都是用label来做提示作用,然后lineText作输入框,最终提供一个submitPushButton作数据提交,值得注意的是,定义好每个组件的时候都要把objectName给改一下,避免后期认不出来。

5.数据库连接及其基本使用

数据库连接

bool connectToDataBase(){
  QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
  if(db.open()){
      qDebug()<<"数据库打开成功了";
      return true;
  }else{
      qDebug()<<"数据库打开失败!";
      return false;
  }
}

数据库建表方法

  //3.首先创建一个表格
  /*创建表的写法是:创建表格语句:create table <table_name> (f1 type1, f2 type2,…);*/
  QSqlQuery sqlQuery;//声明SQL语句
  QString createSql="CREATE TABLE student(sId varchar primary key,sName varchar,sDorm varchar,sMajor varchar,sBrief varchar,sGrad int,sClass int,sGender int,sAge int)";//声明为创建表的SQL语句
  sqlQuery.prepare(createSql);//将写好的SQL语句放进sqlQuery容器中保存
  //检验是否能完成建表
  if(sqlQuery.exec()){
      qDebug()<<"建立学生表成功!";
  }else{
      qDebug()<<"建立学生表失败!"<<sqlQuery.lastError();
  }

数据库插入数据方法

  //4.向表中插入数据来测试
  //插入语句:insert into <table_name> values (value1, value2,…);
  QString insertSql="INSERT INTO student values(\"202025220227\",\"大司马\",\"泰山区1栋1号\",\"软件工程\",\"喜爱编程\",1,2,1,1)";
  QSqlQuery sqlQuery;
  sqlQuery.prepare(insertSql);
  if(sqlQuery.exec()){
      qDebug()<<"向数据库学生表插入数据成功了";
  }else{
      qDebug()<<"向数据库学生表插入失败了,原因:"<<sqlQuery.lastError();
  }

向数据库中查询数据方法

  //5.向数据库中查询数据
  QString selectSql="select * from student";//查询全部数据
  QSqlQuery sqlQuery;
  sqlQuery.prepare(selectSql);
  if(!sqlQuery.exec()){
     qDebug()<<"查询操作错误!原因:"<<sqlQuery.lastError();
  }else{
      while(sqlQuery.next()){
          QString sId=sqlQuery.value(0).toString();
          qDebug()<<sId;
      }
  }

更新数据库内数据的方法

  //6.更新数据库中的内容
  /*update <table_name> set <f1=value1>, <f2=value2>… where <expression>;*/
  QString testName="张三";
  QString updataSql="update student set sName = :sName where sId = :sId";
  sqlQuery.prepare(updataSql);
  sqlQuery.bindValue(":sName",testName);
  sqlQuery.bindValue(":sId","202025220227");

  if(sqlQuery.exec()){
      qDebug()<<"修改数据成功了!";
  }else{
      qDebug()<<"修改数据失败了,失败原因:"<<sqlQuery.lastError();
  }

用变量来替代字符串的办法
用:和即将要插入的东西绑定变量.

  QString sId="00000002";
  QString insertSql="INSERT INTO student values(:sId,\"大司马\",\"泰山区1栋1号\",\"软件工程\",\"喜爱编程\",1,2,1,1)";
  QSqlQuery sqlQuery;
  sqlQuery.prepare(insertSql);
  sqlQuery.bindValue(":sId",sId);
  if(sqlQuery.exec()){
      qDebug()<<"向数据库学生表插入数据成功了";
  }else{
      qDebug()<<"向数据库学生表插入失败了,原因:"<<sqlQuery.lastError();
  }
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 11:41:26  更:2021-10-19 11:43:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:23:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码