概述
Qt调用Dialog窗口的exec崩溃问题处理
- 问题描述:做的界面Qt程序在调用dialog.exec()的地方崩溃,不清楚原因。
- 我的代码定义
class DialogFindTrainNo : public QDialog
{
Q_OBJECT
public:
explicit DialogFindTrainNo(QWidget *parent = 0);
~DialogFindTrainNo();
public:
bool m_bEnter;
QString m_QstrTrainNo;
void SetText(QString strText);
private slots:
void on_pushButton_2_clicked();
void on_pushButton_clicked();
private:
Ui::DialogFindTrainNo *ui;
};
Dialog类的调用部分代码
DialogFindTrainNo *m_GetTrainDlg;
m_GetTrainDlg = new DialogFindTrainNo(parent);
m_GetTrainDlg->SetText("");
m_GetTrainDlg->hide();
m_GetTrainDlg->setGeometry(0,100,520,210);
m_GetTrainDlg->exec();
QString QstrGet = m_GetTrainDlg->m_QstrTrainNo;
-
我需要把Dialog里面的变量m_QstrTrainNo取出来,进行查询。测试结果就是会崩溃在exec()的位置。
-
经过长时间的查找,并不是崩溃在exec()位置,而且崩溃在QstrGet赋值的语句。从Dialog里面取Qstring就大概率崩溃,取m_bEnter却不会有问题。
-
**问题解决:**定义一个全局变量QString把Dialog的输入存储为全局变量。
-
但是为什么这样取字符串会有问题,和QString的定义就有关系了,也许exec之后,内部的QString就被释放了。
最后
以上就是闪闪导师为你收集整理的Qt Dialog窗口调用exec崩溃的全部内容,希望文章能够帮你解决Qt Dialog窗口调用exec崩溃所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复