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

来源:互联网 发布:ecshop 查看sql语句 编辑:程序博客网 时间:2024/04/29 02:35

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_OBJECTpublic: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 Wiorld!");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 Word !");    msg.setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel);    msg.setDefaultButton(QMessageBox::Cancel);    msg.exec();}
5.运行即可。

0 0