Qt界面编程基础
2021/6/10 22:24:10
本文主要是介绍Qt界面编程基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、Qt简介
1、什么是Qt:
是使用C++语言封装的一套用于图形界面编程的框架,Qt专注但不局限于图形界面的开发,还支持系统调用、网络编程、数据库编程、2D/3D图形处理、音视频处理等。
它是跨平台了,支持几乎所有的主流操作系统,Linux、Windwos、MacOS、Android、iOS等系统。
2、为什么选择Qt
基于C++,简单易用
优良的跨平台特性,在个人计算机、工控、嵌入式 的界面占主导地位
二、Qt环境与工具
1、头文件和库文件
将Qt安装完成后,头文件的库文件会自动拷贝到以下路径中,方便为Qt应用程序提供运行支持。
头文件路径:/usr/include/qt4/
库文件路径:/usr/lib/i386-Linux-gnu/qt4/
静态库需要下载Qt源码进行手动编译
2、创造器,它是Qt官方提供一集成开环境,是集代码编辑、项目构建、编译、调试、版本管理于一体的。
3、设计器,以画图方式设计图形界面,所见即所得,但只是出现样子没有实际功能。
4、界面编译器,负责把设计器画出的文件编译成C++代码。
5、助手,qt的帮助手册,有各种的类说明,示例,还提供强大的查询功能。assistant命令打开
三、第一个Qt程序
1、编辑代码,完成后保存退出
QApplication 负责管理应用的资源,同行接收命令行参数。
exec() 是应用程序的控制权交给Qt,使程序进入事件循环,等待用户的动作,如,鼠标单击,按下键盘等操作。
QLabel 标签控件负责显示一些内容
show() 控制默认情况下是隐藏,show成员函数负责把控件显到前台
resize() 设置控件的界面大小。
2、构建项目,并生成项目文件
qmake -project -> xxx.pro文件
3、生成编译脚本
qmake -> Makefile
4、编译并运行
make
./xxx
#include <QApplication> #include <QLabel> int main(int argc,char* argv[]) { QApplication app(argc,argv); QLabel lab("Hello Qt!"); lab.show(); lab.resize(800,600); return app.exec(); }
四、Qt创造器
1、启动创造器:qtcreator
2、创建项目:Qt控件项目->Qt GUI应用->项目路径->项目名称->选择界面类。
注意:路径和项目名称尽量不要有中文。
3、设计界面、编写代码、添加功能。
4、构建项目并运行。
常用的快捷键:
Alt+0 显示隐藏侧边栏 Ctrl+/ 注释、取消注释 Ctrl+I 自动调整代码格式 Ctrl+Shift+R 批量修改变量名 Ctrl+F 搜索、替换 Ctrl+单击 跳转到定义位置 Shift+F2 声明与定义之间切换 Alt+Shift+u 转换成大写 Alt+u 转换成小写 F4 源文件与头文件之间切换 F1 打开帮助手册 Ctrl+B 编译运行 Ctrl+B+S 保存所有文件再编译运行 Ctrl+R 运行 Ctrl+e松开后按0 关闭所有分割窗口 Ctrl+e松开后按1 关闭当前分割窗口 Ctrl+e松开后按2 水平分割窗口 Ctrl+e松开后按3 垂直分割窗口
五、帮助手册
inherits:该类继承了哪些类
1、Public Types: 访问权限是public的成员变量
2、Properties:访问权限是private的成员变量,这种成员一般都有get/set函数
3、Public Functions:访问权限是public的成员函数
4、Static Public Members:访问权限是public的静态成员
5、Public Slots:访问权限是public的槽函数
6、Signals:信号,注意:它不是函数,可以通过 emit 发送,与槽函数建立联系。
7、Reimplemented Protected Functions:一些虚函数,可以覆盖它们形成多太,可以被上层的代码自动调用,一般用它们实现对事件的处理。
8、Detailed Description:对本类的详细说明、使用方法、调用时的上下文注意事项等。
公有成员函数:
pos() 获取控件的位置 x() 获取控件的横向位置 y() 获取控件的竖向位置 move() 设置控件的位置 size() 获取控件的大小 resize() 设置控件的大小 height() 获取控件的高度 width() 获取控件的宽度 setText() 设置控件显示文字 text() 获取控件的文字 show() 显示控件 hide() 隐藏控件 setStyleSheet() 设置控制的css样式
六、中文处理
在Qt 4.8 默认使用的是utf-16的字符编码,windows系统默认的字符编码是GB系列,而Linux、MacOS默认使用的是utf-8的字符编码,如果直接使用中文在程序中就会出现乱码。
QTextCodec * QTextCodec::codecForName (const char * name) static 功能:创建字符编码类对象 name: "utf-8" void QTextCodec::setCodecForLocale ( QTextCodec * c ) static 功能:设置本地系统使用的字符编码集 void QTextCodec::setCodecForCStrings ( QTextCodec * codec ) static 功能:设置程序中使用的QString的字符编码集 void QTextCodec::setCodecForTr ( QTextCodec * c ) static 功能:设置程序外部的字符编码集 固定的使用方法: #include <QTextCodec> QTextCodec* code = QTextCodec::codecForName("utf-8"); QTextCodec::setCodecForTr(code); QTextCodec::setCodecForLocale(code); QTextCodec::setCodecForCStrings(code);
七、Qt中的字符串与输出
QString 具备string的所有功能
字符串字面值可以直接转换成QString类型,从界面输入的数据也都是QString类型的
QString可以通过to系列函数转换成各种类型
C/C++语言中的scanf/printf/cin/cout可以继续使用,但Qt建议使用qDebug,因为它具备cin/cout/scanf/pritnf的功能。
八、信号和槽
1、信号
Qt中的信号是模仿系统信息,对象与对象之间通信的一种方式。
Qt中的控件对象一旦发生什么变化就会发出信号通知其它对象。
2、槽函数
可以与信号绑定一种类成员函数,也可以当作普通的成员函数调用。
3、信号与槽函数的连接
bool QObject::connect( const QObject *asender, 信号发者对象地址 const char *asignal, 发出的信号 需要使用SIGNAL()宏把信号转换成字符 const char *amember, 信号接收者对象地址 const char *method 对象接收的槽函数 需要使用SLOT()宏把槽函数转换成字符串 ) const connect(&sender,SIGNAL(clicked(void)),&recv,SLOT(close(void))); 注意:在写信号和槽函数时不需要手动编写,而尽量选择创造器的提示,原因是信号和槽一旦格式出错编译器无法发现。
九、窗口容器
从Hello案例中可以看出,一个控件就是一个窗口,要想把多个控件放在一个窗口中,需要需要把这些控件束缚一个容器中,这种控件就叫窗口容器。
1、QMainWindow
主窗口容器,由标题栏、菜单栏、工具栏、状态栏以及中央显示区域组成。
2、QDialog 对话框容器,管理多个不同的交互控件。 3、QWidget 纯粹的容器,它是QMainWindow和QDialog的父类。 在创建控件时,把容器的地址作为参数给控件,这样控件就被放入容器中了。 4、界面设计的工作原理 1、项目创建完成后会生成一个mainwindow.ui界面文件,双击该文件可以编辑界面。 2、mainwindow.ui会自动生成一份ui_mainwindow.h头文件,该文件在创造器中看不到。 3、在ui_mainwindow.h头文件中会自动生成Ui_MainWindow类,该类中会包含所有编辑的控件对象。 4、在ui_mainwindow.h头文件中还会自动创建MainWindow类,并继承Ui_MainWindow类且被包含Ui名字空间中。 5、mainwindow.h头文件中也会自动创建MainWindow类,该类中会有一个Ui::MainWindow* ui类型的成员,该对象会构造函数的初始化列表中被new创建。 6、构造函数函数调用了ui->setupUi(this)成员函数,设置窗口容器以及控件的样式,通过ui可以访问所有界面文件中的控件。
十、设计师的使用
1、设置窗口容器的界面大小
2、拖拽一些需要的控件
1、在对象查看器中设置控件的名字
2、设置控件的大小位置
3、使用方向键,Ctrl+方向键对控件位置进行微调
4、使用Shift+方向键,Shift+Ctrl+方向键对控件的大小进行微调
3、设置控件的字体、字号、特效。
4、设置控件的水平对齐、垂直对齐
5、设置控件是否启用
6、使用uic命令可以把.ui文件生成头文件。
QMainWindow w; Ui::MainWindow windows; windows.setupUi(&w); w.show();
作业:实现QQ登录界面
这篇关于Qt界面编程基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求