C++ for QWidget:connect(连接)
语法:
QObject::connect(发射信号的对象,发射的信号,接收信号的对象,接收后执行的命令)
#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 创建一个中心窗口部件QWidget *centralWidget = new QWidget(this);setCentralWidget(centralWidget);QPushButton *pushButton1 = new QPushButton("button1", this);//创建button1QPushButton *pushButton2 = new QPushButton("button2", this);//创建button2QPushButton *pushButton3 = new QPushButton("button3", this);//创建button3QVBoxLayout *verticallayout = new QVBoxLayout(centralWidget); QHBoxLayout *horizontallayout = new QHBoxLayout; horizontallayout->addWidget(pushButton1);horizontallayout->addWidget(pushButton2);horizontallayout->addWidget(pushButton3);verticallayout->addLayout(horizontallayout);//布局部分,与主题无关QObject::connect(pushButton1, &QPushButton::clicked, this, &QWidget::close);//第一个按钮设置按下后关闭窗口QObject::connect(pushButton2, &QPushButton::clicked, [](){QMessageBox::information(nullptr, "Message", "Button2");});//第二个按钮使用lambda函数,设置按下后弹出消息窗口QObject::connect(pushButton3, &QPushButton::clicked, [pushButton3](){pushButton3->setText("clicked!");});//第三个按钮也使用了lambda函数,并捕获按钮三,按下时按钮三的文本由原来的"button3"变为"clicked!"
}MainWindow::~MainWindow()
{delete ui;
}