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.界面切换

浙公网安备 33010602011771号