qt类关系图
创建Qt项目时,发现提供的窗体默认 基类有:QMainWindow
、QDialog
、QWidget
这三种。
之后,你会发现,这3中窗体在UI交互中,用的也是最多的。
以下是Qt类关系图:
基础窗口控件QWidget
由上图可以看到,QWidget是所用用户界面对象的基类,因此被称为基础窗口部件。
窗口、子部件、窗口类型
窗口及窗口类型链接: https://blog.csdn.net/MrHHHHHH/article/details/134091196
子部件是设置父对象,在别的窗口显示的部件。
根据QWidget,默认构造可以看出:
explicit QWidget(QWidget* parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags());
当不设置第一个参数时,它就是窗口,如果设置了,就是子部件。
第二个参数,设置窗体Flags类型。可以设置多个窗体类型枚举值进行位或操作。
如:
QWidget* pW = new QWidget(0, Qt::Dialog | Qt::WindowShadeButtonHint);
pW->show();
设置pW为对话框类型并设置有阴影。
QLabel* pL = new QLabel("helloworld", 0, Qt::SplashScreen | Qt::WindowStaysOnTopHint);
pL->show();
设置pL为欢迎窗口类型,并置顶,显示如下:
以上pL显示后,右上角没有关闭按钮,如何关闭呢?
在输出器里点击下图框选按钮进行关闭。
窗体布局
在索引
里输入Window and Dialog Widgets
可查看相关介绍。
根据以上可以看出:窗体布局分两种:
包含框架函数: x(), y(), frameGeometry(), pos(), and move().
不包含框架函数: geometry(), width(), height(), rect(), and size().
resize()设置是不包含边框的窗口大小。
程序调试及快捷键
Qt快捷键操作链接: https://blog.csdn.net/MrHHHHHH/article/details/131039023
QtCreator 查看类帮助文档链接: https://blog.csdn.net/MrHHHHHH/article/details/133976674
F9
或者点击行号左侧空白区域添加断点
对话框QDialog
QDialog
是所有对话框窗口类的基类。对话框窗口是一个经常用于完成短小任务或者和用户进行简单交互的顶层窗口。
对话框分类
根据运行对话框是否还可以与其他窗口交互,被分为:模态的
和非模态的
设置模态链接:链接: https://blog.csdn.net/MrHHHHHH/article/details/127865655
close()方法
只有当最后一个窗口调用close()方法时,程序才关闭,其他时候只是隐藏了窗口。
信号和槽
信号和槽使用链接:链接: https://blog.csdn.net/MrHHHHHH/article/details/133755793
Qt使用信号和槽机制完成对象之间的协作。
Qt的信号和槽是一种用于在Qt应用程序中进行事件处理和通信的机制。信号是一种特殊的函数,它们被一个对象(称为信号发射器)发出以表示某个事件已发生。槽是另一种函数,它们被用于响应信号并执行相应的操作。
通过将信号与槽连接起来,可以实现在应用程序中触发事件和响应事件的自动化。例如,当用户单击一个按钮时,该按钮可能会发出一个信号,您可以将这个信号连接到一个槽函数中,该函数将在发生这个事件时自动执行。
使用信号和槽,可以实现各种应用程序的功能,包括图形用户界面(GUI)应用程序、网络应用程序和多线程应用程序等。它可以帮助开发人员编写更加可靠和灵活的代码,并提高开发效率。
设计师使用信号和槽
流程如下:快捷键F4
,可以点击编辑,添加自定义信号和槽
标准对话框
在索引输入Standard Dialogs Example
,可以看到相关介绍。
- 输入对话框
- 颜色对话框
- 字体对话框
- 文件对话框
- 信息提示框
此外,还有日历选择对话框、进度框、向导、错误提示框等
其他窗口部件
QFrame类
QFrame类是所有带边框的部件的基类。
QFrame类是可以有边框的小部件的基类。QMenu使用它来将菜单“升起”到周围的屏幕之上。QProgressBar具有“凹陷”的外观。QLabel具有平面外观。这些小部件的边框可以进行更改。
QLabel类
【Qt控件之QLabel】用法及技巧:链接: https://blog.csdn.net/MrHHHHHH/article/details/133691441
QPushButton类
【Qt控件之QPushButton】使用及技巧:
链接: https://blog.csdn.net/MrHHHHHH/article/details/133692079
QLineEdit类
【Qt控件之QLineEdit、QPlainTextEdit 、QTextEdit 、QTextBrowser】使用及区别:
链接: https://blog.csdn.net/MrHHHHHH/article/details/133758536
QRadioButton类
【Qt控件之QRadioButton】使用及技巧
链接: https://blog.csdn.net/MrHHHHHH/article/details/133829311
结论
温故而知新。