QT信號與槽之槽函數(shù)
Qt的一項重要的機制就是它的信號和槽,在圖形用戶界面編程中,經(jīng)常需要將一個窗口部件的變化通知給另一個窗口部件,或者說系統(tǒng)對象進行通信.一般的圖形用戶編程中采用回調函數(shù)進行對象間通信(如gtk+),這樣回調函數(shù)和處理函數(shù)捆綁在一起,但這樣做沒有信號和槽機制簡便和靈活。
QT的信號與槽是什么,大家可以方便的搜索到。或許用QT Designer 設計槽會方便一些,其實手動寫出來或許會更好。下面就是自己自己手動設計的一個槽函數(shù)的例子。此處寫的是類似QQ的登陸框。
1.首先在頭文件中定義槽函數(shù)。
- #ifndef LOGINDIALOG_H
- #define LOGINDIALOG_H
- #include <QDialog>
- namespace Ui {
- class LoginDialog;
- }
- class LoginDialog : public QDialog
- {
- Q_OBJECT
- public:
- explicit LoginDialog(QWidget *parent = 0);
- ~LoginDialog();
- private:
- Ui::LoginDialog *ui;
- private slots:
- void on_RegisterButton_clicked();
- void SignUp(); // 自定義的槽
- };
- #endif // LOGINDIALOG_H
- #ifndef LOGINDIALOG_H
- #define LOGINDIALOG_H
- #include <QDialog>
- namespace Ui {
- class LoginDialog;
- }
- class LoginDialog : public QDialog
- {
- Q_OBJECT
- public:
- explicit LoginDialog(QWidget *parent = 0);
- ~LoginDialog();
- private:
- Ui::LoginDialog *ui;
- private slots:
- void on_RegisterButton_clicked();
- void SignUp(); // 自定義的槽
- };
- #endif
2. 在CPP中連接信號click與SignUp并實現(xiàn)槽函數(shù)體。
- //構造函數(shù)
- LoginDialog::LoginDialog(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::LoginDialog)
- {
- ui->setupUi(this);
- ui->loginpassword->setEchoMode(QLineEdit::Password); //給密碼加密
- ui->loginuserid->setFocus(); //設置焦點
- connect(ui->LoginButton,SIGNAL(clicked()),this,SLOT(SignUp()));//connect
- }
- void LoginDialog::SignUp()
- {
- ...
- }
- //構造函數(shù)
- LoginDialog::LoginDialog(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::LoginDialog)
- {
- ui->setupUi(this);
- ui->loginpassword->setEchoMode(QLineEdit::Password); //給密碼加密
- ui->loginuserid->setFocus(); //設置焦點
- connect(ui->LoginButton,SIGNAL(clicked()),this,SLOT(SignUp()));//connect
- }
- void LoginDialog::SignUp()
- {
- ...
- }
自己定義的槽函數(shù)就這么實現(xiàn)啦!
小結:QT信號與槽之槽函數(shù)的內容就介紹完了,文字不多,基本是代碼實現(xiàn),希望你能夠實現(xiàn)出效果,能夠幫你學習槽函數(shù)。
【編輯推薦】