一文帶你了解Qt中槽的使用
一、建立槽和按鈕之間的連接
connect(信號(hào)發(fā)送者,發(fā)送的信號(hào),信號(hào)接收者,信號(hào)接收者的槽函數(shù))
1、例子
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo()));
解釋:
信號(hào)反發(fā)送者:pushButton(這是一個(gè)按鈕),發(fā)送信號(hào):clicked(點(diǎn)擊按鈕),信號(hào)接收者:this(本類),信號(hào)接收者的槽函數(shù):showinfo(點(diǎn)擊按鈕后響應(yīng)的函數(shù))
二、槽函數(shù)的定義
(1)槽函數(shù)
protected slots: void showinfo();
(2)自定義帶參數(shù)的槽函數(shù)
signals: void mysignal(); //自定義信號(hào)(不需要實(shí)現(xiàn)),發(fā)送信號(hào)emit mysignal()
槽函數(shù)應(yīng)用例子:
1、在頭文件中定義槽函數(shù)
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
//槽函數(shù)聲明
protected slots:
void showinfo();//槽函數(shù)
void myslot();
//自定義帶參數(shù)的槽函數(shù)
signals:
void mysignal(); //自定義信號(hào)(不需要實(shí)現(xiàn)),發(fā)送信號(hào)emit mysignal()
void sendNum(int num);
private slots:
void on_closbt_clicked();
void getNum(int num);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H2、在源文件中建立按鈕與槽函數(shù)之間的連接
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug.h>
#include <QtWidgets/QStackedLayout>
#include "form.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//把按鈕的信號(hào)與本類的showinfo槽函數(shù)關(guān)聯(lián)
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo()));
//把本類的信號(hào)mysignal與本類的槽函數(shù)myslot()關(guān)聯(lián)
connect(this,SIGNAL(mysignal()),this,SLOT(myslot()));
connect(this,SIGNAL(sendNum(int)),this,SLOT((int)));
}
MainWindow::~MainWindow()
{
delete ui;
}
//實(shí)現(xiàn)槽函數(shù)
void MainWindow::showinfo()
{
qDebug()<<"信號(hào)與槽函數(shù)測試";
//發(fā)送信號(hào)
emit mysignal();
}
void MainWindow::myslot()
{
qDebug()<<"自定義信號(hào)觸發(fā)";
}
void MainWindow::getNum(int num)
{
qDebug()<<num;
}
void MainWindow::on_closbt_clicked()
{
emit sendNum(123);
}到此這篇關(guān)于一文帶你了解Qt中槽的使用的文章就介紹到這了,更多相關(guān)Qt槽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++中String增刪查改模擬實(shí)現(xiàn)方法舉例
這篇文章主要給大家介紹了關(guān)于C++中String增刪查改模擬實(shí)現(xiàn)方法的相關(guān)資料,String是C++中的重要類型,程序員在C++面試中經(jīng)常會(huì)遇到關(guān)于String的細(xì)節(jié)問題,甚至要求當(dāng)場實(shí)現(xiàn)這個(gè)類,需要的朋友可以參考下2023-11-11
vscode工程中c_cpp_properties.json文件作用詳細(xì)說明
c_cpp_properties.json是Visual Studio Code的一個(gè)配置文件,用于定義C/C++編譯器的路徑、默認(rèn)包含路徑和預(yù)處理器定義,這篇文章主要給大家介紹了關(guān)于vscode工程中c_cpp_properties.json文件作用詳細(xì)說明的相關(guān)資料,需要的朋友可以參考下2024-08-08
windows上配置vscode?C/C++代碼跳轉(zhuǎn)的實(shí)現(xiàn)
C/C++官方的C/C++插件,必備的插件,是代碼跳轉(zhuǎn)、自動(dòng)補(bǔ)全、代碼大綱顯示等功能的基礎(chǔ),本文主要介紹了windows上配置vscode?C/C++代碼跳轉(zhuǎn),感興趣的可以了解一下2023-09-09
C語言 數(shù)據(jù)結(jié)構(gòu)之連續(xù)存儲(chǔ)數(shù)組的算法
這篇文章主要介紹了C語言 數(shù)據(jù)結(jié)構(gòu)之連續(xù)存儲(chǔ)數(shù)組的算法的相關(guān)資料,需要的朋友可以參考下2017-01-01
C語言中多維數(shù)組的內(nèi)存分配和釋放(malloc與free)的方法
寫代碼的時(shí)候會(huì)碰到多維數(shù)組的內(nèi)存分配和釋放問題,在分配和釋放過程中很容易出現(xiàn)錯(cuò)誤。下面貼上一些示例代碼,以供參考。2013-05-05

