1. 程式人生 > >C++-Qt按鈕事件(訊號和槽機制)

C++-Qt按鈕事件(訊號和槽機制)

 
 #include //主程式類
#include //按鈕類
#include //編碼類
#include //佈局管理器類
#include//窗體類
int main(int argc,char * argv[])
{//主函式
   QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));//設定程式編碼
   QApplication app(argc,argv);//主程式指標
   QHBoxLayout * layout=new QHBoxLayout;//佈局管理器指標
   QWidget  * window=new QWidget;//窗體指標
   window->setWindowTitle("測試軟體-涵涵");//窗體標題
   window->setFixedSize(300,200);//窗體大小
   QPushButton *btn=new QPushButton("退出程式");//按鈕指標
   btn->resize(70,30);//安按鈕大小
   QObject::connect(btn,SIGNAL(clicked()),&app,SLOT(quit()));//訊號和槽   (注意 : 由於按鈕上面是指標方式定義的  所以這裡沒必要加& 取地址)
   //當 btn物件被按下時  傳送clicked訊號 傳送到 app的槽 quit 然後執行 軟體就關閉了
   layout->addWidget(btn);//把按鈕加入佈局管理器
   window->setLayout(layout);//佈局管理器放入主窗體
   window->show();//顯示主窗體
  return app.exec();//執行程式開始訊息迴圈
}

}

相關推薦

C++-Qt按鈕事件訊號機制

  #include //主程式類 #include //按鈕類 #include //編碼類 #include //佈局管理器類 #include//窗體類 int main(int argc,c

學習筆記 c++ boost庫,訊號函式

#include"iostream" #include"boost/signals.hpp" using namespace std; void my_slot(){   cout<<"my_slot()"<<endl; } void my_sl

Qt 訊號機制的優點(區別於回撥函式)

定義:             Qt使用訊號與槽機制進行物件間的通訊,當某個物件的狀態發生變化時,該物件會觸發一個訊號,該訊號和另外一些物件的槽函式繫結,訊號的觸發將導致執行這些槽函式,這些槽

深入理解Qt訊號機制訊號中的Lambda表示式

對於事件處理,MFC中使用的是訊息對映機制,Qt使用的是訊號和槽機制,在我看來,Qt的訊號和槽比MFC功能更強大,也更靈活。1、訊號和槽的簡單介紹: 一般格式: connect(Sender,SIGNAL(signal),Receiver,SLOT(slot));

Qt訊號機制簡單例子

訊號和槽機制概述: 訊號和槽用於兩個物件之間的通訊。訊號和槽機制是Qt的核心特徵,也是Qt不同於其他開發框架最突出特徵。有時候,我們希望某個物件任何時候都可以跟其他物件通訊。例如,有一個物件A,定時向B傳送一個數字,物件B接收到該數字就將其打印出來。又或者有一個按鈕,當用戶點選該按鈕時呼叫clo

C++實現訊號機制

主要通過,C++實現型別QT訊號和槽的問題 設計思路: 1、利於模板函式和模板類的通用性 2、bind的時候,將槽函式指標儲存,觸發時呼叫 程式碼如下: #include <algorithm> #include <iostream> #

【5】C++進階系列陣列指標2

1、實驗 實驗1:3 x 3矩陣的轉置 #include<iostream> using namespace std; void swap(int &a, int &b) { int temp = a; a = b; b = temp;

QT:moveToThread與訊號機制的第五個引數Qt::ConnectionType

原來對QThread的理解,就是重寫run(),曾經還一度搞不明白,到底它的槽屬於主執行緒還是子執行緒。後來學了MFC,一度覺得MFC的機制比較人性化,起碼有工作執行緒和介面執行緒的用法,而不像QThread只有run是真正活在子執行緒裡面的。而直到今天再次研究QThrea

java並發之線程同步synchronized機制

blog 是否 can return nbsp jvm 環境 imp ava 使用synchronized實現同步方法 使用非依賴屬性實現同步 在同步塊中使用條件(wait(),notify(),notifyAll()) 使用鎖實現同步 使用讀寫鎖實現同步數據訪問 修改

QT訊號處理機制事件新增處理動作點選按鈕顯示helloworld

首先新建一個專案命名為“QtGuuitest3” 雙擊 "QtGuitest3.ui" 其中按鈕的名字是pushButton 多行文字框為plainTextEdit 在QtGuuitest3.h中新增 #pragma once #include &

qt訊號問題變數只在函式中改變問題

在連結一個類A和另一個類B一個物件的時候, 如果在A類物件中定義物件B,只使用B x方式定義,需要在connect第三個槽引數中使用引用,大部分情況是在A中new一個B的物件,便可以直接使用connect. A *x[24]=A *(x[24]); 然而在實際運用中,發生了這樣神奇的情況

QT基礎訊號

什麼是訊號和槽?訊號和槽的作用 訊號和槽都是函式,比如按下視窗上的一個按鈕後想要彈出一個對話方塊,那麼就可以將這個按鈕的單擊訊號和我們定義的槽關聯起來,在這個槽中可以建立一個對話方塊,並且顯示它。這樣,當單擊這個按鈕時就會發射訊號,進而執行我們的槽來顯示一個對

C++ ——Qt訊號的詳解

1、概述 訊號槽是 Qt 框架引以為豪的機制之一。所謂訊號槽,實際就是觀察者模式。當某個事件發生之後,比如,按鈕檢測到自己被點選了一下,它就會發出一個訊號(signal)。這種發出是沒有目的的,類似廣播。如果有物件對這個訊號感興趣,它就會使用連線(connect)函式,

QT 訊號的關聯斷開

#include "widget.h" #include "ui_widget.h" #include "mydialog.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { u

QT---之訊號的關聯與語法

一概述  二訊號  四訊號和槽的關聯  五元物件工具  六程式樣例  七應注意的問題  8訊號和槽也不能攜帶模板類引數  9巢狀的類不能位於訊號或槽區域內也不能有訊號或槽 

Qt 訊號

訊號和槽 訊號和槽用於物件間的通訊。訊號/槽機制是Qt的一箇中心特徵並且也許是Qt與 其它工具包的最不相同的部分。 在圖形使用者介面程式設計中,我們經常希望一個視窗部件的一個變化被通知給另一個 視窗部件。更一般地,我們希望任何一類的物件可以和其它物件進行通訊。例如,如 果我們正在解析一個XML檔

QT學習記錄1訊號

使用,學習QT的背景 剛入職新公司,工作是嵌入式軟體,工作內容包括使用QT進行一些軟體的開發等,以前沒有接觸過QT,特意建立第一篇部落格,用作QT的學習過程記錄 入職後,公司前輩要求使用QT寫一個軟體,接收硬體裝置傳回的資料並顯示,同時軟體可以對裝置的工作方式進行設定,使用TCP通訊協議。

Qt訊號線上程之間傳遞

Qt中的訊號和槽的機制是Qt中最常用的也是最具優勢的一個特點,但是使用起來有時候會遇到一些問題,最近一直在用Qt做專案,其中使用到了通過訊號線上程之間傳遞資料,發現了一些問題,最後通過各種蒐集資料及自己的測試,最後總結了一下。 在run函式中發射訊號,在主執行緒處理,執行緒的start函式一定要

Qt訊號連線失敗原因及解決辦法

有時候程式編譯成功了,但是connect並沒有將訊號和槽連線起來。Qt訊號和槽連線失敗原因主要有以下幾點: 槽函式並沒有宣告在類的public slots(或private slots或protected slots)裡,因

QT訊號的實現原理

訊號和槽是qt用於物件之間通訊的核心機制。其目的類似於當一個動作發生的時候,需要對這個動作做出相應的處理,類似的還有藉助於函式指標的回撥機制,通過回撥函式完成對此動作的操作。但是如果對一個龐雜的系統,這種回撥函式的維護是相當的麻煩和危險的,使用太多的回撥會導致高耦合的情況,這在實際開發過程中是儘量避