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.界面切换
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构