xxx.pro文件注意事项:
QT+= core gui 加载模块(根据实际需求添加)
CONFIG+=C++11 console 支持c++,在执行应用程序时,可以在控制终端中查看生成的日志文件
DEFINES +=QT_DEPRECATED_WARNINGS如果调用旧版本的指令会给警告
main.cpp:
#include "mainwindow.h"
#include<QApplication>
Qapplication a(argc,argv)#类为应用程序类。让软件不断循环
MainWindow w;#创建窗口对象
w.show()#显示窗口
return a.exec()#阻塞函数,确保应用程序不会退出
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
//对应的是UI文件中的类
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)//实例化ui对象
{
ui->setupUi(this);//将两个界面进行捆绑,可以统一在UI中和mainwindow.cpp中对界面的修改。
}
MainWindow::~MainWindow()//析构函数,关掉UI界面
{
delete ui;
}
三种窗口类型的区别:
1、QWidget
所有窗口的基类
可以内嵌到其他窗口的内部-无边框(需要给该窗口指定父窗口)
可以作为独立的窗口显示-有边框(不能给该窗口指定父类)
Qt中所有控件的基类。
实例:
testwidget* w=new testwidget();
在其他窗口类中如果没有指定父对象,将是一个独立的窗口,要显示这个窗口需要输w.show()
如果输入testwidget* w=new testwidget(this);新建的Qwidget窗口将内嵌到父窗口中,就不再是独立的窗口,当父窗口显示时,子窗口也会跟着显示出来(子窗口将没有边框,不再独立)。
2、QDialog
对话框窗口类
模态和非模态两种显示方式
模态显示:
xx.show()可以任意在多个窗口之间进行操作。
非模态显示:
xx.exec()只有当当前对话框关掉才能操作其他窗口(可以设置用户名,密码时采用)
不能内嵌
3、QMainWindow
主窗口类
可以包含菜单栏、工具栏、状态栏
不能内嵌