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