第3篇 Qt登录对话框
版权声明 该文章原创于Qt开源社区(www.qter.org),作者yafeilinux,转载请注明出处!可以到这里对本文进行讨论! 导语 在前一篇的内容中我们已经实现了登录对话框,这一篇对其进行改进,在弹出对话框中填写用户名和密码,按下登录按钮,如果用户名和密码均正确则进入主窗口,如果有错则弹出警告对话框。应广大Qter的要求,这一节先使用设计器进行讲解,然后再使用纯代码讲解一遍,想学习纯代码编程的小伙伴们努力吧! 环境:Windows 7 + Qt 5.8.0(包含QtCreator 4.2.1) 正文 一、使用设计模式创建界面 1.新建Qt Widgets Application,项目名称为login,类名和基类保持MainWindow和QMainWindow不变。 2.完成项目创建后,向项目中添加新的Qt设计师界面类,模板选择Dialogwithout Buttons,类名更改为LoginDialog。完成后向界面上添加两个标签Label、两个行编辑器Line Edit和两个按钮Push Button,设计界面如下图所示。 3.先选中用户名后面的行编辑器部件,然后在属性编辑器中将其objectName属性更改为usrLineEdit,如下图所示。下面依次更改其他部件的objectName属性,密码后面的行编辑器为pwdLineEdit,登录按钮为loginBtn,退出按钮为exitBtn。 4.下面使用另外一种信号和槽的关联方法来设置退出按钮。在设计模式下方的信号和槽编辑器(Signals & Slots Editor)中,先点击左上角的绿色加号添加关联,然后选择发送者为exitBtn,信号为clicked(),接收者为LoginDialog,槽为close()。如下图所示。这样,当单击退出按钮时,就会关闭登录对话框。 5.右击登录按钮,在弹出的菜单中选择“转到槽…”,然后选择clicked()信号并确定。转到相应的槽以后,添加函数调用: void LoginDialog::on_loginBtn_clicked() { accept(); } 6.下面到main.cpp文件,更改内容如下: #include #include "mainwindow.h" #include "logindialog.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; LoginDialog dlg; if (dlg.exec() == QDialog::Accepted) { w.show(); return a.exec(); } else return 0; } 7.这时运行程序,按下退出按钮会退出程序,按下登录按钮会关闭登录对话框,并显示主窗口。 |