Qt Creator和VS2010中添加槽信号_差异与详解

1.前言:

Qt  的窗口部件通过发射信号(signal)来表明一个用户的动作已经发生了或者是一个状态已经改变了。如点击一个QPushButton时,按钮会发送一个clicked()信号,信号可以与函数(在qt里称做槽slot)相连接可以把信号理解为MFC里的事件。信号与槽的关系,我们也可以类比为为,事件驱动关系

利用QT做UI设计的一般分为两派,发烧派采用Qt Creator设计,平台友好,视觉冲击强,流线式设计。微软派采用Visual Studio开发,此派深受微软毒害~ 已经难以自拔~

就个人而言,属于微软派,用久了想脱身也不容易了。

这里需要面对一个问题就是VS与Qt Creator中添加“信号与槽”是不一样的,需要注意。

2.Visual Studio2010中添加槽

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.运行结果


没错,这就意味着,我们成功了。

3.Qt Creator中添加槽过程

诶呀。支持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.运行即可。

发布了652 篇原创文章 · 获赞 1613 · 访问量 303万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503

分享到微信朋友圈

×

扫一扫,手机浏览