QT信号与槽之槽函数

移动开发
本文介绍的是关于QT信号与槽之槽函数,用简单的代码实现QQ登录窗口。对于Qt 信号与槽的概念就不对解释了,网上也有许多的资料。

Qt的一项重要的机制就是它的信号,在图形用户界面编程中,经常需要将一个窗口部件的变化通知给另一个窗口部件,或者说系统对象进行通信.一般的图形用户编程中采用回调函数进行对象间通信(如gtk+),这样回调函数和处理函数捆绑在一起,但这样做没有信号和槽机制简便和灵活。

QT信号是什么,大家可以方便的搜索到。或许用QT Designer 设计会方便一些,其实手动写出来或许会更好。下面就是自己自己手动设计的一个槽函数的例子。此处写的是类似QQ的登陆框。

1.首先在头文件中定义槽函数。   

  1. #ifndef LOGINDIALOG_H    
  2. #define LOGINDIALOG_H    
  3. #include <QDialog>     
  4. namespace Ui {     
  5.     class LoginDialog;     
  6. }     
  7. class LoginDialog : public QDialog     
  8. {     
  9.     Q_OBJECT     
  10. public:     
  11.     explicit LoginDialog(QWidget *parent = 0);     
  12.     ~LoginDialog();     
  13. private:     
  14.     Ui::LoginDialog *ui;     
  15. private slots:     
  16.     void on_RegisterButton_clicked();     
  17.     void SignUp(); // 自定义的槽     
  18. };    
  19. #endif // LOGINDIALOG_H    
  20. #ifndef LOGINDIALOG_H  
  21. #define LOGINDIALOG_H  
  22. #include <QDialog> 
  23. namespace Ui {  
  24.     class LoginDialog;  
  25. }  
  26. class LoginDialog : public QDialog  
  27. {  
  28.     Q_OBJECT  
  29. public:  
  30.     explicit LoginDialog(QWidget *parent = 0);  
  31.     ~LoginDialog();  
  32. private:  
  33.     Ui::LoginDialog *ui;  
  34. private slots:  
  35.     void on_RegisterButton_clicked();  
  36.     void SignUp(); // 自定义的槽  
  37. };  
  38. #endif  

2. 在CPP中连接信号click与SignUp并实现槽函数体。

  1. //构造函数     
  2. LoginDialog::LoginDialog(QWidget *parent) :     
  3.     QDialog(parent),     
  4.     ui(new Ui::LoginDialog)     
  5. {     
  6.     ui->setupUi(this);     
  7.     ui->loginpassword->setEchoMode(QLineEdit::Password); //给密码加密     
  8.     ui->loginuserid->setFocus(); //设置焦点     
  9.     connect(ui->LoginButton,SIGNAL(clicked()),this,SLOT(SignUp()));//connect     
  10. }     
  11. void LoginDialog::SignUp()     
  12. {     
  13. ...     
  14. }    
  15. //构造函数  
  16. LoginDialog::LoginDialog(QWidget *parent) :  
  17.     QDialog(parent),  
  18.     ui(new Ui::LoginDialog)  
  19. {  
  20.     ui->setupUi(this);  
  21.     ui->loginpassword->setEchoMode(QLineEdit::Password); //给密码加密  
  22.     ui->loginuserid->setFocus(); //设置焦点  
  23.     connect(ui->LoginButton,SIGNAL(clicked()),this,SLOT(SignUp()));//connect  
  24. }  
  25. void LoginDialog::SignUp()  
  26. {  
  27. ...  

自己定义的槽函数就这么实现啦!

小结:QT信号槽函数的内容就介绍完了,文字不多,基本是代码实现,希望你能够实现出效果,能够帮你学习槽函数

【编辑推荐】

QT的信号与槽机制

浅谈Qt中多线程编程

在Qt中如何写控制台程序

从新手到老手之Qt学习历程

QT中关于信号与槽机制的实现原理

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-06-09 09:45:35

Linux QT 信号

2011-06-23 14:40:13

Qt 信号

2011-06-23 13:38:27

QT 元对象 信号

2011-06-13 10:21:25

QT 信号 槽机制

2011-06-20 15:40:19

QT 信号

2011-06-28 15:47:13

Qt 信号

2021-12-23 15:07:40

QtC++编译程序

2011-07-01 14:34:02

Thread Affinity 信号

2011-06-27 16:18:24

Qt Designer

2011-06-22 17:09:50

QT 进程 通信

2023-10-07 08:21:35

PyQtPython

2021-09-28 14:25:48

iPhone 13苹果手机

2018-11-04 08:17:41

2013-10-29 09:32:05

2013-10-29 09:08:05

2013-09-12 10:11:57

苹果iPhone 5ciPhone 5s

2012-03-10 20:55:40

Nokia

2012-08-24 10:49:51

备份恢复

2015-08-04 14:44:39

Windows 10升级

2021-06-29 21:36:21

微服务Nacos日志
点赞
收藏

51CTO技术栈公众号