一、新建项目时只有pro文件而没有其他文件
此时需要在Kits界面将所有编译器选择,即可出现其他文件
二、QMainWindow、QWidget、QDialog的区别
①QWidget继承于QObject和QPaintDevice,QDialog和QMainWindow则继承于QWidget,QDialog、QMainWindow两者之间没有直接关系。
②QMainWindow 类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。 主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及周围菜单、工具条和一个状态条。QMainWindow常常被继承,因为这使得封装中央部件、菜单和工具条以及窗口状态条变得更容易,当用户点击菜单项或者工具条按钮时,槽会被调用。
③QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的,并且它们按Z轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。
④QDialog 是最普通的顶级窗口。 一个不会被嵌入到父窗口部件的窗口部件叫做顶级窗口部件。通常情况下,顶级窗口部件是有框架和标题栏的窗口(尽管使用了一定的窗口部件标记,创建顶级窗口部件时也可能没有这些装饰。)在Qt中,QMainWindow和不同的QDialog的子类是最普通的顶级窗口。
⑤如果是主窗体,则基于QMainWindow创建。如果是顶级对话框,则基于QDialog创建。如果需要嵌入到其他窗体中,则基于QWidget创建。如果不确定,或者1 2两种情况都有,那么,就选择QWidget。
三、新建项目
新建一个Widget Application项目:QWidget作为窗口基类,选中Generate form复选框
项目组织文件:名称.pro 存储项目设置
主程序入口文件:main.cpp 实现main函数
界面文件:weiget.ui 使用XML格式描述原件及布局
widhet.h是所设计的窗体类的头文件,weight.cpp是实现文件,任何窗体或界面组件都是用类来封装的。
四、UI界面设计
1、在ui中添加文字,拖动Display Widgets中的Label放到界面中,双击即可写入文字。
2、加入按钮,拖动Buttons中的Push Button放到界面中,双击可以写按键上的文字。
3、拖到界面中的东西可以修改他们的名字,在右上角Filter对象浏览器处。
4、此处的几个选项为继承关系,QLabel继承QFrame,QFrame继承QWidget,QWiget继承QObject。
5、信号槽功能,给close按键添加槽,使其点击后关掉窗口。
发送者:选择放置的按键的名字
信号:
clicked():当鼠标左键按下然后释放时,或者快捷键被释放时触发信号。
pressed:当鼠标指针在按键上并按下左键时触发该信号。
released:当鼠标左键被释放时触发该信号。
clicked[bool]:当按键被第一次按下然后释放时发出信号,并将当前状态传递给外界。
toggled[bool]:按键的状态发生变化时发出信号,并将当前状态传递给外界。
toggled:当按钮的标记状态发生改变时触发信号。
接收者:Widget
槽:此时需要点下之后关闭页面,选择close()
6、主函数文件:实现main函数的文件
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
QApplication a(argc, argv); 定义并创建应用程序
Widget w; 定义并创建窗口
w.show(); 显式应用
return a.exec(); 应用程序运行,开始消息循环和事件处理