1. 程式人生 > >QT中程式碼中與設計器中控制元件訊號與SLOT連線

QT中程式碼中與設計器中控制元件訊號與SLOT連線

 

雙擊testqt.ui

託一個push button到窗體中,雙擊,可以輸入字元

按F4或 menu->edit->edit signals/slots 定義SLOT

選擇已定義好的SLOT,點確定就可以進行關聯了。

定義自定義SLOT:

點上面對話方塊中的EDIT按鈕,彈出:

注意這裡自定義的slot必須是

on_<object name>_<signal name>(<signal parameters>)

格式。

然後再在testqt.h標頭檔案中加入下面宣告:

     public slots

:

     void on_testQt_clicked ();

在testqt.cpp中加入函式實現:

void testQt::on_testQt_clicked ()

{

     QMessageBox msg;

     msg.setText("ok");

     msg.exec();  //模式對話方塊,show顯示非模式對話方塊

}

編譯後,你可以在ui_testqt.h標頭檔案中看到

  QObject::connect(pushButton,SIGNAL(clicked()),testQtClass,SLOT(on_testQt_clicked ()));

QMetaObject

::connectSlotsByName(testQtClass);

例如UI裡新建了一個openButton,在.h檔案裡宣告void on_openButton_clicked()函式並在cpp檔案裡新增這個函式的定義後,seupUi()就可以自動將openButton的clicked訊號與我們定義的slot函式聯絡在一起了!

我們的.ui檔案自動生成的ui_mainwindow.h檔案裡的程式碼總會有一句:

QMetaObject::connectSlotsByName(MainWindowClass);

它就是用來自動識別我們所有介面控制元件的訊號槽的,但必須是以下面的格式。

void QMetaObject::connectSlotsByName ( QObject * object ) [static]

Searches recursively for all child objects of the given object, and connects matching signals from them to slots of object that follow the following form:

public slots:

void on_<object name>_<signal name>(<signal parameters>);

Let's assume our object has a child object of type QPushButton with the object name button1. The slot to catch the button's clicked() signal would be:

void on_button1_clicked();

相關推薦

QT程式碼設計控制元件訊號SLOT連線

  雙擊testqt.ui 託一個push button到窗體中,雙擊,可以輸入字元 按F4或 menu->edit->edit signals/slots 定義SLOT 選擇已定義好的SLOT,點確定就可以進行關聯了。 定義自定義SLO

VS程式設計,編輯WPF過程,點選設計介面某一控制元件,在XAML中高亮突出顯示相應的控制元件程式碼的設定方法。

在編輯製件WPF過程中,當介面中控制元件較多時,可通過點選設計器中具體的控制元件,從而中在xaml程式碼視窗中快速跳轉到對應的部分。為了突出顯示該部分控制元件程式碼的名稱,方便視覺上直觀的觀察到被選中的控制元件對應的XAML程式碼,可以在VS中設定:選中控制元件後,高亮顯示對應的XAML

【轉】WPF自定義控制元件樣式(9)-樹控制元件TreeView選單Menu-ContextMenu

一.前言   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。   本文主要內容: 選單Menu的自定義樣式; 右鍵選單ContextMenu的自定義樣式; 樹控制元件TreeView的自定義樣式,及右鍵選單實現。 二.選單M

【Java-POJO-設計模式】JavaEE的POJO設計模式多型繼承的衝突

最近看《重構》談到利用OO的多型來優化 if else 和 switch 分支語句,但是我發現OO語法中的多型在使用框架的JavaEE中是無法實踐的。對此,我感到十分的疑惑,加之之前專案中有個“狀態模式”類的模組被頻繁改動的需求折磨要死,又去看了《設計模式》。《設計模式》中也是強調,使

【FastReport教程】如何在報表設計使用帶有函式的自定義庫

在報表設計器中的內建函式庫並不是很小,但有時候仍然缺乏一些特定的功能。由於報表中的指令碼,可以輕鬆實現所需的功能。但是,如果許多記錄中需要此功能呢?每次都將它新增到報表指令碼中?當然不是。可以在連線到報表設計器的庫中收集所有需要的函式。需要庫與報表位於同一資料夾中,建立一

潤乾報表設計使用 spring 框架實現自定義資料集

spring是一個開源框架,是為了解決企業應用程式開發複雜性而建立的。在 web 開發環境中經常會與 struts、hibernate聯合起來使用,進行規範的框架結構開發。潤乾中的二次開發也可以與 SSH 框架相結合部署到 web 專案中。本文介紹在設計時沒有啟動 web 服務,在設計器中使用 sp

控制元件system.windows.forms.Label在設計引發了一個未經處理的異常,已被禁用

問題出現在MDI窗體中,用PictureBox作為MDI窗體背景圖片(更改MDI窗體背景屬性執行效果不是很理想)問題出現了,畫一個控制元件它會報錯,提示 給控制元件設定一下父容器。 程式碼:labe

如何獲得 Qt視窗部件在主視窗的位置--確定滑鼠是否在某一控制元件控制元件上的位置

用Qt Creator 設計程式時,最方便的就是ui設計器,可以很容易的得到想要的佈局。 但是這樣自動佈局帶來的後果是很難知道視窗中某一部件在主視窗中的相對位置。 在處理子視窗滑鼠事件時變的很麻煩。主視窗有選單、工具條等,想用滑鼠繪圖, 把滑鼠軌跡對映到視窗部件上,這些

在Myeclipse 2015安裝使用Swing設計

我自己手寫swing是一件很麻煩的事情,但是幸運的是有人寫了一個myeclipse的外掛,叫做Windowbuilder 安裝WindowBuilder 第一步,開啟Myeclipse,在上面的選單欄中找到install from ca

《隨筆四》——C#的 “屬性和索引的 get 和 set 訪問的訪問修飾符”

屬性和索引器中的 get 和 set 訪問器的訪問修飾符 ●  索引器和屬性自帶 get 和 set 訪問器,  在預設的情況下:  如果一個屬性有public 訪問級別, 那麼它的那個兩個訪問器

Android設定控制元件可見不可見

第一種    gone         表示不可見並且不佔用空間 第二種    visible       表示可見 第三種    invisible    表示不可見但是佔用空間 可見與不可見的表現形式有兩種。 在佈局檔案中: [html]view plaincopyprint? andr

Android 在OnCreate()獲取控制元件高度寬度

 試過在OnCreate()中獲取控制元件高度與寬度的童鞋都知道,getWidth()與getHeight()方法返回是0,具體原因 看一下Activity的生命週期 就會明白。   上程式碼: 方法一:         int w = View.Measur

ListViewItemItem的子控制元件點選事件衝突問題解決

心靈包含人所有的一切有意識、無意識的思想、情感和行為。——《星夜心理書系》 1、問題 在Android開發時,ListView中點選一個Item,會一併觸發其子控制元件的點選事件。比如Item中的Button、ImageButton等。導致了點選

easyui的datagrid分頁控制元件設定數值獲取

我對easyui+javaWeb中的分頁理解:datagrid(資料網格)的分頁中 有一個附加的分頁控制元件,只需後臺獲取分頁控制元件自動提交的兩個引數rows(每頁顯示的資料條數)和page(當前頁碼)然後讀取相應頁數的記錄,和總記錄數total一塊返回即可        

Qt實時將Qtableview的內容顯示在相應的控制元件

        學習Qt有一段時間了,幾天做東西需要將Qtableview中的資料顯示在相應的控制元件上,想看好久,終於搞定了,特意拿出來,和大家分享,也當做是自己的一個學習筆記。     首先我的

Android引入佈局和和自定義控制元件

首先是引入佈局: 1.我們自己新建一個layout,就是一個標題欄。 2.然後在我們的mainactivity_layout中使用一個語句就可以實現。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout

在非主執行緒非MainActivity更新Toast、ImageView等UI控制元件方法

首先需要明確一點就是UI只能在主執行緒中更新,其他地方想更新UI,我目前學到的有兩種方法: 1.採用handler的方式 public class MainActivity extends Activity{ ...... ImageView image

C#(Winform) 當前執行緒不在單執行緒單元,因此無法例項化 ActiveX 控制元件

解決方案: 1、在主執行緒中例項化此ActiveX控制元件 2、將建立此Active控制元件的執行緒設定為單執行緒。       Thread.ApartmentState 獲取或設定此執行緒的單元狀態。             newThread= new Thre

ScrollView軟鍵盤彈出依然遮住控制元件

在一個Activity頁面中,常會有需要使用者輸入的文字控制元件EditText,EditText獲取焦點後,彈出的軟鍵盤往往會遮擋底部的其他控制元件,通常處理方法是: 1、xml佈局中,使用ScrollView包含使用者控制元件; 2、Manifest檔案

MFC怎麼通過程式改變Picture Control控制元件的大小

我是想通過MFC做一個波形顯示的介面,通過Picture Control控制元件顯示波形,剛開始不知怎麼改變這個視窗的大小 BOOL CMFC_Example1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // TOD