Qt 的窗口部件经过发射信号(signal)来代表一个用户的动做已经发生了或者是一个状态已经改变了。如点击一个QPushButton时,按钮会发送一个clicked()信号,信号能够与函数(在qt里称作槽slot)相链接。能够把信号理解为MFC里的事件。信号与槽的关系,咱们也能够类比为为,事件驱动关系。函数
利用QT作UI设计的通常分为两派,发烧派采用Qt Creator设计,平台友好,视觉冲击强,流线式设计。微软派采用Visual Studio开发,此派深受微软毒害~ 已经难以自拔~ui
就我的而言,属于微软派,用久了想脱身也不容易了。this
这里须要面对一个问题就是VS与Qt Creator中添加“信号与槽”是不同的,须要注意。spa
Step1:建立对话框窗口,选择“建立界面”复选框设计
2.头文件中添加“槽声明”调试
3.源文件中进行“槽实现”(注意添加消息盒子的头文件)
#ifndef ADDSOLTTOVS_H
code
#define ADDSOLTTOVS_H
blog
#include <QtWidgets/QDialog>
事件
#include "ui_addsolttovs.h"
开发
class AddSoltToVs : public QDialog
{
Q_OBJECT
public:
AddSoltToVs(QWidget *parent = 0);
~AddSoltToVs();
private:
Ui::AddSoltToVsClass ui;
////////槽声明
public slots:
void Btn_Click();
};
#endif // ADDSOLTTOVS_H
4.打开UI,进入Qt Designer,创建槽
#include "addsolttovs.h"
#include <QMessageBox>
AddSoltToVs::AddSoltToVs(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
}
AddSoltToVs::~AddSoltToVs()
{
}
void AddSoltToVs::Btn_Click()
{
QMessageBox msg;
msg.setText("Hello World!");
msg.exec();
}
注意:别把槽的函数名写错了
注意:必定要把Designer关闭了再去调试咱们的VS主程序
5.运行结果
没错,这就意味着,咱们成功了。
诶呀。支持Creator的发烧友们欢呼吧~ 的确,很简单~
1.打开 Qt Creator新建一个项目MyQtDemo
2.点击mainwindow打开设计窗体在窗体上添加一个PushButton。点击右键先把转到槽
3.打开转到槽窗体
4.点击clicked()点击肯定,在mainwindow.cpp里添加QMesageBox
5.运行便可。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QMessageBox msg;
msg.setText("Hello World !");
msg.setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel);
msg.setDefaultButton(QMessageBox::Cancel);
msg.exec();
}