一、窗口代码实例
#include "widget.h" #include <QApplication>//包含一个应用程序类的头文件 int main(int argc, char *argv[]) { //应用程序对象,在整个qt中有且只有一个 QApplication a(argc, argv); Widget w; //窗口对象默认不显示 w.show(); //让应用程序对象进入消息循环(窗口就不会一闪而过) return a.exec(); }
二、.pro文件解释
QT += core gui //Qt包含的模块 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //大于4版本以上包含widget模块 CONFIG += c++11DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ //源文件 main.cpp \ widget.cpp HEADERS += \ //头文件 widget.h FORMS += \ // widget.ui TRANSLATIONS += \ qt1_zh_CN.ts # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target 、
三、创建按钮
1)成员方法
设置父窗口:setParent()
设置文本内容:setText()
设置大小:resize()
设置位置:move()
2)代码实例
#include "widget.h" #include "ui_widget.h" #include <qpushbutton> //包含头文件
Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //法一 // QPushButton *btn1=new QPushButton; // //btn1->show(); //show()以顶层方式显示窗口 // btn1->setParent(this); // btn1->setText("按钮1"); //法二 QPushButton *btn2=new QPushButton("按钮2", this);
btn2->move(100,100);//移动按钮
resize(500,500);// 重置窗口大小
} Widget::~Widget() { delete ui; }
四、信号和槽
#include "widget.h" #include "ui_widget.h" #include <qpushbutton> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //法一 // QPushButton *btn1=new QPushButton; // //btn1->show(); //show()以顶层方式显示窗口 // btn1->setParent(this); // btn1->setText("按钮1"); //法二 QPushButton *btn2=new QPushButton("按钮2", this); //移动按钮 btn2->move(100,100); // 重置窗口大小 resize(500,500); //参数1:信号发送者 //参数2:触发事件 //参数3:信号接受者 //参数4:处理事件(槽) connect(btn2,&QPushButton::clicked,this,&Widget::close); } Widget::~Widget() { delete ui; }