QT 一个入门级基础程序
1.程序实现目标
打开一个窗口,里面有两个按钮,第一个按钮按下后打开第二个按钮,第二个按钮按下后关闭第二个窗口
涉及内容:1.显示窗口 2.qpushbutton组件的使用 3.信号量和槽
2.代码
这里用的是QMainWindow ,也可以用QWidget,效果相同
#include <QApplication>
#include <QDebug>
#include <qpushbutton.h>
#include <QObject>
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qpushbutton.h"
#include "QDebug"
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);//应用程序对象,a有且仅有一个
QMainWindow w1;
QMainWindow w2;
qDebug("begin");
w1.setWindowTitle("MainWindow");
w2.setWindowTitle("SecWindow");
w1.setFixedSize(1000,400);//设置窗口大小并锁死,不允许更改
w2.setFixedSize(1000,1000);
QPushButton *btn1= new QPushButton("open",&w1);//按照控件方法创造按钮,第一个参数名字,第二个设置父亲是当前
btn1->move(100,100);//设置按键位置
btn1->resize(80,60);//设置按键大小
QPushButton *btn2= new QPushButton("close",&w1);
btn2->move(400,100);//设置按键位置
btn2->resize(80,60);//设置按键大小
QObject::connect(btn1, &QPushButton::clicked, &w2, &QMainWindow::show);
QObject::connect(btn2, &QPushButton::clicked, &w2, &QMainWindow::close);
w1.show();
return a.exec();//进入消息循环机制,代码阻塞,类似system("pause");
}
3.实现效果
按下open后打开第二个窗口
按下close就关闭第二个窗口了,就不演示了
4.一些容易出错的地方
1.刚开始编译器死活识别不到connect函数,后来发现是要加上QObject::
,加上后就能正常识别了
2.要注意一些地方参数需要指针类型,记得加&
取址符