初识信号与槽

xiaoxiao2021-02-28  121

初识信号与槽

1.下面使用的手动关联来实现信号与槽 使用的函数connect() [cpp]  view plain  copy   MainWin.h      Class MainWindow :public QMainWindow{          Q_OBJECT      ppublic:          explicit MainWindow(QWidget *parent = 0);       ~MainWindow(){}      private slots:       void showDialog();//槽函数      private:       MainWindow *ui_;       QDialog *dia_;   }   [cpp]  view plain  copy   MainWin.cpp      MainWindow::MainWindow(QWidget *parent):       QMainWindow(parent),       ui_(new MainWindow)   {       ui_->setupUi(this);       //第一个参数是响应信号对象,第二个参数是响应对象的方式,即响应函数,前面需要加上SIGNAL       //第三个参数是响应槽对象,第四个参数是响应槽函数,前面需要加上SLOT       connect(ui_->checkBox,SIGNAL(clicked()),this,SLOT(showDialog()));      }      void MainWindow::showDialog()   {       dia_ = new QDialog();       dia_->show();   }   简单实现了一个点击来完成打开一个对话窗的效果 2.使用自动关联 不使用connect()函数,但是有前提,这个信号部件是通过Qt设计器来添加的,而不是简单地手工添加。想要通过手工添加,需要再加上一些函数类来完成操作。通过Qt设计器来添加的部件和信号槽,都是使用下面的方法来完成的信号与槽。 [cpp]  view plain  copy   MainWin.h      Class MainWindow :public QMainWindow{          Q_OBJECT      ppublic:          explicit MainWindow(QWidget *parent = 0);       ~MainWindow(){}      private slots:       void on_checkBox_clicked();//槽函数,函数名由  on_信号部件名字_信号函数  组成,      private:       MainWindow *ui_;       QDialog *dia_;   }   [cpp]  view plain  copy   MainWin.cpp      MainWindow::MainWindow(QWidget *parent):       QMainWindow(parent),       ui_(new MainWindow)   {       ui_->setupUi(this);       //第一个参数是响应信号对象,第二个参数是响应对象的方式,即响应函数,前面需要加上SIGNAL       //第三个参数是响应槽对象,第四个参数是响应槽函数,前面需要加上SLOT       //connect(ui_->checkBox,SIGNAL(clicked()),this,SLOT(showDialog()));      }      void MainWindow::on_checkBox_clicked()   {       c_ = new QDialog();       c_->show();   }   效果和上面的一样,而且使用更加简单
转载请注明原文地址: https://www.6miu.com/read-67979.html

最新回复(0)