Qt界面设计

Qt信号与槽函数可以实现任意两个Qt类的对象之间进行通信,比如登录类QtLoginWin 与界面上的登录按钮loginBt

当点击按钮的时候会发送clicked信号,这样就可以与QtLoginWin的槽函数关联进行通信如下图:

把控件的名字分别修改为

用户输入:userEdit,   密码输入:passEdit, 注册:registerBt, 登录:loginBt (修改方法如下, 选择对应的按钮修改属性objectName)

修改qtloginwin.h


 
 
  1. #ifndef QTLOGINWIN_H
  2. #define QTLOGINWIN_H
  3. #include <QMainWindow>
  4. namespace Ui {
  5. class QtLoginWin;
  6. }
  7. class QtLoginWin : public QMainWindow
  8. {
  9. Q_OBJECT
  10. public:
  11. explicit QtLoginWin(QWidget *parent = 0);
  12. ~QtLoginWin();
  13. private slots: //槽函数声明--在.cpp中必须实现
  14. void login_fun(); //登录槽函数声明
  15. void register_fun(); //注册槽函数声明
  16. void signals_test(); //用来测试自定义信号使用
  17. signals: //信号声明--不需实现,后期直接通过emit 发送就可以了
  18. void mysignals();
  19. private:
  20. Ui::QtLoginWin *ui;
  21. };
  22. #endif // QTLOGINWIN_H

修改qtloginwin.cpp文件


 
 
  1. #include "qtloginwin.h"
  2. #include "ui_qtloginwin.h"
  3. #include <QDebug>
  4. QtLoginWin::QtLoginWin(QWidget *parent) :
  5. QMainWindow(parent),
  6. ui( new Ui::QtLoginWin)
  7. {
  8. ui->setupUi( this);
  9. //按钮信号与本类的槽函数关联
  10. connect(ui->loginBt,SIGNAL(clicked( bool)), this, SLOT(login_fun()));
  11. connect(ui->registerBt,SIGNAL(clicked( bool)), this, SLOT(register_fun()));
  12. //本类对象自己发送信号与本类对象关联
  13. connect( this, SIGNAL(mysignals()), this, SLOT(signals_test()));
  14. }
  15. QtLoginWin::~QtLoginWin()
  16. {
  17. delete ui;
  18. }
  19. void QtLoginWin::login_fun()
  20. {
  21. qDebug()<< "login";
  22. //发送信号
  23. emit mysignals();
  24. }
  25. void QtLoginWin::register_fun()
  26. {
  27. qDebug()<< "register";
  28. //发送信号
  29. emit mysignals();
  30. }
  31. void QtLoginWin::signals_test()
  32. {
  33. qDebug()<< "signal test";
  34. }

当点击按钮的时候---login_fun,或者register_fun会调用, 在这两个槽函数中发送信号, 所以signals_test函数也被调用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值