Qt信号和槽函数

按钮的部分内置信号有

1 Signals
2 void clicked(bool checked = false)
3 void pressed()
4 void released()
5 void toggled(bool checked)

QPushButton自带clicked信号, MainWindow中自带close槽函数

1 //把按钮的点击clicked信号窗口(this)的close槽函数关联
2 connect(ui->bt,&QPushButton::clicked, this, &MainWindow::close);

 

1.自定义槽函数

1 private slots://自定义槽函数
2     void myprint();  //槽函数声明----必须要实现
3 void MainWindow::myprint() //槽函数实现
4 {
5     qDebug()<<"hello world";
6 }
7 //把printBt按钮的信号与槽函数myprint关联
8 connect(ui->printBt,&QPushButton::clicked,this, &MainWindow::myprint);

2.自定义信号

(信号声明)

复制代码
1 signals:
2     void mysignal();//自定义信号---不需要实现
3 信号发送
4 void MainWindow::mybutton_fun()
5 {
6     qDebug()<<"槽函数1";
7     //发送信号---
8     emit mysignal();
9 }
复制代码

 

复制代码
 1 #include <QMainWindow>
 2 
 3 namespace Ui {
 4 class MainWindow;
 5 }
 6 
 7 class MainWindow : public QMainWindow
 8 {
 9     Q_OBJECT
10 
11 public:
12     explicit MainWindow(QWidget *parent = nullptr);
13     ~MainWindow();
14 private slots:
15     void mybutton_fun();//槽函数1
16     void selfbutton_fun();//槽函数2
17 signals:
18     void mysignal();//自定义信号---不需要实现
19 private:
20     Ui::MainWindow *ui;
21 };
22 
23 #endif // MAINWINDOW_H
复制代码
复制代码
 1 #include "mainwindow.h"
 2 #include "ui_mainwindow.h"
 3 #include <QDebug>
 4 MainWindow::MainWindow(QWidget *parent) :
 5     QMainWindow(parent),
 6     ui(new Ui::MainWindow)
 7 {
 8     ui->setupUi(this);
 9     //把按钮的clicked信号关联mybutton_fun槽函数
10     connect(ui->button, &QPushButton::clicked,this, &MainWindow::mybutton_fun);
11     //把mysignal信号与selfbutton_fun槽函数关联
12     connect(this, &MainWindow::mysignal, this, &MainWindow::selfbutton_fun);
13 }
14 
15 MainWindow::~MainWindow()
16 {
17     delete ui;
18 }
19 
20 void MainWindow::mybutton_fun()
21 {
22     qDebug()<<"槽函数1";
23     //发送信号---
24     emit mysignal();
25 }
26 
27 void MainWindow::selfbutton_fun()
28 {
29     qDebug()<<"槽函数2";
30 }
复制代码

3.界面切换

 

posted @   他们都叫我神奇  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示