仅在 MacOS 中,QLineEdit 构造函数中 setupUi 上的应用程序崩溃
Posted
技术标签:
【中文标题】仅在 MacOS 中,QLineEdit 构造函数中 setupUi 上的应用程序崩溃【英文标题】:Application crashes on setupUi in QLineEdit consturctor only in MacOS 【发布时间】:2017-09-21 09:16:33 【问题描述】:我有一个带有生成的 Ui_ 文件的 Qt4.8 QWidget
class QMyWidget: public QWidget
Q_OBJECT
public:
Ui_MyGeneratedUi ui;
...
它在 Windows 和 Linux 上运行良好,但是当我尝试时
QMyWidget()
> ui.setupUi(this);
...
在 MacOS (10.12) 上,我的应用程序崩溃,堆栈跟踪看起来像 this 或 this。 UI 中似乎没有什么特别可疑的地方。此外,我的应用程序中还有许多其他 QWidgets,它们生成的 UI 和 QLineEdit 嵌入在 MacOS 上也能很好地工作。
提到的错误已关闭,似乎在 Qt5 中进行了修改,但我想知道这些崩溃的原因是什么,是否有任何解决方法。
【问题讨论】:
【参考方案1】:这个错误非常神秘。在我的情况下,它是由父子 QWidget 中的几个 QLabels 触发的,其中内部用作按钮
QLabel* sample = new QLabel("<a href=\"dothething\">Do thing</a>", ui.protoarea);
QObject::connect(
sample, SIGNAL(linkActivated(QString)),
this, SLOT(add_clicked(QString))
);
只要我用实际按钮替换它们,一切就开始工作了。哪个元素应该专注于添加新小部件的逻辑似乎存在故障。
【讨论】:
以上是关于仅在 MacOS 中,QLineEdit 构造函数中 setupUi 上的应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
pyqt - 在 QLineEdit 中达到一定数量的字母后激活 QCompleter