初识信号与槽
1.下面使用的手动关联来实现信号与槽
使用的函数connect()
- MainWin.h
-
- Class MainWindow :public QMainWindow{
-
- Q_OBJECT
-
- ppublic:
-
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow(){}
-
- private slots:
- void showDialog();
-
- private:
- MainWindow *ui_;
- QDialog *dia_;
- }
- MainWin.cpp
-
- MainWindow::MainWindow(QWidget *parent):
- QMainWindow(parent),
- ui_(new MainWindow)
- {
- ui_->setupUi(this);
-
-
- connect(ui_->checkBox,SIGNAL(clicked()),this,SLOT(showDialog()));
-
- }
-
- void MainWindow::showDialog()
- {
- dia_ = new QDialog();
- dia_->show();
- }
简单实现了一个点击来完成打开一个对话窗的效果
2.使用自动关联
不使用connect()函数,但是有前提,这个信号部件是通过Qt设计器来添加的,而不是简单地手工添加。想要通过手工添加,需要再加上一些函数类来完成操作。通过Qt设计器来添加的部件和信号槽,都是使用下面的方法来完成的信号与槽。
- MainWin.h
-
- Class MainWindow :public QMainWindow{
-
- Q_OBJECT
-
- ppublic:
-
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow(){}
-
- private slots:
- void on_checkBox_clicked();
-
- private:
- MainWindow *ui_;
- QDialog *dia_;
- }
- MainWin.cpp
-
- MainWindow::MainWindow(QWidget *parent):
- QMainWindow(parent),
- ui_(new MainWindow)
- {
- ui_->setupUi(this);
-
-
-
-
- }
-
- void MainWindow::on_checkBox_clicked()
- {
- c_ = new QDialog();
- c_->show();
- }
效果和上面的一样,而且使用更加简单