Qt Creator和VS2010中添加槽信号_差异与详解
1.前言:
Qt ?的窗口部件通過(guò)發(fā)射信號(hào)(signal)來(lái)表明一個(gè)用戶的動(dòng)作已經(jīng)發(fā)生了或者是一個(gè)狀態(tài)已經(jīng)改變了。如點(diǎn)擊一個(gè)QPushButton時(shí),按鈕會(huì)發(fā)送一個(gè)clicked()信號(hào),信號(hào)可以與函數(shù)(在qt里稱(chēng)做槽slot)相連接。可以把信號(hào)理解為MFC里的事件。信號(hào)與槽的關(guān)系,我們也可以類(lèi)比為為,事件驅(qū)動(dòng)關(guān)系。
利用QT做UI設(shè)計(jì)的一般分為兩派,發(fā)燒派采用Qt Creator設(shè)計(jì),平臺(tái)友好,視覺(jué)沖擊強(qiáng),流線式設(shè)計(jì)。微軟派采用Visual Studio開(kāi)發(fā),此派深受微軟毒害~ 已經(jīng)難以自拔~
就個(gè)人而言,屬于微軟派,用久了想脫身也不容易了。
這里需要面對(duì)一個(gè)問(wèn)題就是VS與Qt Creator中添加“信號(hào)與槽”是不一樣的,需要注意。
2.Visual Studio2010中添加槽
Step1:創(chuàng)建對(duì)話框窗口,選擇“創(chuàng)建界面”復(fù)選框
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.源文件中進(jìn)行“槽實(shí)現(xiàn)”(注意添加消息盒子的頭文件)
#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.打開(kāi)UI,進(jìn)入Qt Designer,建立槽 注意:別把槽的函數(shù)名寫(xiě)錯(cuò)了
注意:一定要把Designer關(guān)閉了再去調(diào)試我們的VS主程序
5.運(yùn)行結(jié)果
沒(méi)錯(cuò),這就意味著,我們成功了。
3.Qt Creator中添加槽過(guò)程
誒呀。支持Creator的發(fā)燒友們歡呼吧~ ?的確,很簡(jiǎn)單~
1.打開(kāi) Qt Creator新建一個(gè)項(xiàng)目MyQtDemo
2.點(diǎn)擊mainwindow打開(kāi)設(shè)計(jì)窗體在窗體上添加一個(gè)PushButton。點(diǎn)擊右鍵先把轉(zhuǎn)到槽
3.打開(kāi)轉(zhuǎn)到槽窗體
4.點(diǎn)擊clicked()點(diǎn)擊確定,在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.運(yùn)行即可。
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的Qt Creator和VS2010中添加槽信号_差异与详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: VTK修炼之道5_Procedural
- 下一篇: C++写的一个聊天室代码,用于XEIM开