QMainWindow 是主窗口类,主窗口类具有主菜单栏、工具栏和状态栏,类似于一般的应用程序的主窗口;
QWidget是所有具有可视界面类的基类,选择QWidget创建的界面对各种界面组件都可以支持;
QDialog是对话框类,可建立一个基于对话框的界面。
.ui 文件
后缀为.ui 的文件是可视化设计的窗体定义文件。如widget.ui和mainwindow.ui。双击该文件就可以在qt designer 对窗体进行可视化设计。
.ui文件是一个xml文件,如widget.ui和mainwindow.ui定义了窗口上的所有组件的属性设置、布局,及其信号与槽函数的关联等。
ui_widget.h文件和ui_mainwindow.h
ui_widget.h是在对widget.ui文件编译后生成的一个文件,这个文件会出现在编译后的目录下,不会出现在目录树里。ui_widget.h文件里实现界面功能的类是Ui_Widget。再定义一个类Widget从Ui_Widget继承而来,并定义在namespace Ui里.
setupUi
Ui_Widget类的setupUi函数,用于创建各个界面组件,并设置其位置、大小、文字、字体等属性,并设置信号槽的关联。
retranslateUi();
用于设置诫命各组件的文字内容属性,如标签的文字,键盘的位子。一般用于多语言。
QMetaObject::connectSlotsByName();
设置槽函数的关联方式,如果空间定义的槽函数名称为:
void on_<object name>_<signal name>(<signal parameters>);
一个控件名称为actTongJi,想响应点击的信号槽,那用户自定义槽函数void on_actTongJi_triggered();就可以了,不用再写connect关联函数。因为调用QMetaObject::connectSlotsByName();等价于
connect(actTongJi,SIGNAL(triggered),this,SLOT(on_actTongJi_triggered()));
可视化添加工具栏菜单栏
打开qt designer 对需要添加工具栏的widget右键菜单添加工具栏(菜单栏)。
在动作编辑器Action Editor通过右键建立一个new action。
将需要使用的action用鼠标左键拖放至工具栏(菜单栏)
为action添加slot,直接点选action后右键,在右键菜单中选择go to slot。选择信号,这样直接生成槽函数。而不用手动设置connect关联。