QDialog show()后面跟着返回结果操作
QDialog show() follow with return result actions
我使用QDialog创建了一个登录GUI,它有一个返回登录成功状态public: bool loginsucessful
的插槽bool Login::on_OKbutton_Clicked()
,之后我想根据这个结果进行一些判断,代码如下:
//Login class
Login::Login(QString Ver, QWidget *parent) :
QDialog(parent),
ui(new Ui::Login)
{
public:
bool loginsucessful = 0;
bool on_OKbutton_Clicked()
{
// login data acquisition and verification
if (verification_passed) { loginsucessful = 1};
}
//outer codes
Login *login = new Login(ver);
login->show();
//here is the question
if (login.loginsucessful)
{...}
else {...}
我希望在登录GUI完成后(单击"确定"或"取消"按钮)执行if
后续操作,但.show()
无法执行,我尝试了.exec()
,但会与(QApplication) a.exec()
等代码冲突,导致未终止的进程问题。
我刚开始用Qt编程,有没有好的解决方案可以等待GUI并在它关闭后执行以下代码?非常感谢!
如果你想用阻塞的方式显示对话框并访问结果,你可以使用exec()
并在它返回时看到结果:
login = new Login();
if(login->exec())
{
bool result = login->loginsucessful;
if (result)
{
...
}
else
{
...
}
}
相关文章:
- C++Brute Force攻击函数不会返回结果
- 如何在一个表达式中生成并返回结果?
- 使用std::tie进行类似golang的错误处理,同时返回结果,是否有缺点?(C++11)
- C++ 线程端回调并返回结果
- C++使用存储过程返回结果
- reinterpret_cast总是返回结果C++?
- 尝试以随机字符(长读取)打印字符串返回结果
- 通过C 中的参考返回结果
- 使用枚举确定返回结果的类型(使用宏的黑客)
- 返回结果不可见
- 打开一个 Shell 程序,向其传递参数,然后返回结果
- 如何在递归函数中计算返回结果
- 整数列表的交集-无法返回结果列表
- 来自 open() 的返回结果代码之间的差异:25 与 3
- 使用 c++11 线程返回结果的正确方法是什么
- 传递StringBuilder并从c++dll向c#返回结果
- 如何跳出一些深度递归的函数并直接返回结果
- 使用MPI临时接收数据,然后返回结果
- C++,我不知道为什么我的函数不返回结果
- QDialog show()后面跟着返回结果操作