Qt 的窗口部件通过发射信号(signal)来表明一个用户的动作已经发生了或者是一个状态已经改变了。如点击一个QPushButton时,按钮会发送一个clicked()信号,信号可以与函数(在qt里称做槽slot)相连接。可以把信号理解为MFC里的事件。信号与槽的关系,我们也可以类比为为,事件驱动关系。 利用QT做UI设计的一般分为两派,发烧派采用Qt Creator设计,平台友好,视觉冲击强,流线式设计。微软派采用Visual Studio开发,此派深受微软毒害~ 已经难以自拔~ 就个人而言,属于微软派,用久了想脱身也不容易了。 这里需要面对一个问题就是VS与Qt Creator中添加“信号与槽”是不一样的,需要注意。
Step1:创建对话框窗口,选择“创建界面”复选框
2.头文件中添加“槽声明”
#ifndef ADDSOLTTOVS_H
#define ADDSOLTTOVS_H
#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
3.源文件中进行“槽实现”(注意添加消息盒子的头文件)
#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();
}
4.打开UI,进入Qt Designer,建立槽
注意:别把槽的函数名写错了
注意:一定要把Designer关闭了再去调试我们的VS主程序
5.运行结果
没错,这就意味着,我们成功了。
诶呀。支持Creator的发烧友们欢呼吧~ 的确,很简单~
1.打开 Qt Creator新建一个项目MyQtDemo
2.点击mainwindow打开设计窗体在窗体上添加一个PushButton。点击右键先把转到槽
3.打开转到槽窗体
4.点击clicked()点击确定,在mainwindow.cpp里添加QMesageBox
#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();
}
5.运行即可。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有