QWidget: must construct a QApplication before a QWidget

清涧煎饼 2014-12-24 05:39:06
在vs2010生成QT动态库,其中有QDialog和QLabel等,现在vs2010新的工程中调用出现的错误?如果我的dll内类不继承QT的QDialog,就不会错误出现。网上查了下可能的原因是release和debug库混乱,可是在我这没有这个问题啊,因为不继承就不会出错,还有就是没有这句InitializeComponent();话, 但是在我的VS2010express中根本没有这个函数,我想还是对象实例问题出错了,但是究竟该怎么避免呢,求大神 谢谢O(∩_∩)O谢谢
...全文
2334 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
清涧煎饼 2014-12-25
  • 打赏
  • 举报
回复
引用 3 楼 HeadmasterWang 的回复:
[quote=引用 2 楼 shihufeng 的回复:] [quote=引用 1 楼 foruok 的回复:] 必须得有QApplication才能使用其它控件。
代码如下,我做过了QApplication的实例化 class TabDialog : public QDialog { Q_OBJECT public: explicit TabDialog(/*const QString &fileName, QWidget *parent = 0*/); //explicit TabDialog(const string &fileName, QWidget *parent = 0); ~TabDialog(); }; TabDialog::TabDialog(/*const QString &fileName, QWidget *parent*/) //: QDialog(parent) { int k=0; QApplication* app = new QApplication(k, NULL); } 然后生成的QT dll,在新的工程里调用 TabDialog* tabdialog = new TabDialog(); 会在构造函数这块出错:QWidget: must construct a QApplication before a QWidget[/quote] 在构造QDialog之前构造QApplication,一般放在main函数里 QWidget: must construct a QApplication before a QWidget 错误不是写的很清楚么,注意``before''[/quote] 谢谢啊 我现在在dll内部写了函数去调用类,然后这之前进行了QWidget的构造,现在没有这个错误了,真心感谢。
清涧煎饼 2014-12-25
  • 打赏
  • 举报
回复
引用 3 楼 HeadmasterWang 的回复:
[quote=引用 2 楼 shihufeng 的回复:] [quote=引用 1 楼 foruok 的回复:] 必须得有QApplication才能使用其它控件。
代码如下,我做过了QApplication的实例化 class TabDialog : public QDialog { Q_OBJECT public: explicit TabDialog(/*const QString &fileName, QWidget *parent = 0*/); //explicit TabDialog(const string &fileName, QWidget *parent = 0); ~TabDialog(); }; TabDialog::TabDialog(/*const QString &fileName, QWidget *parent*/) //: QDialog(parent) { int k=0; QApplication* app = new QApplication(k, NULL); } 然后生成的QT dll,在新的工程里调用 TabDialog* tabdialog = new TabDialog(); 会在构造函数这块出错:QWidget: must construct a QApplication before a QWidget[/quote] 在构造QDialog之前构造QApplication,一般放在main函数里 QWidget: must construct a QApplication before a QWidget 错误不是写的很清楚么,注意``before''[/quote]
引用 3 楼 HeadmasterWang 的回复:
[quote=引用 2 楼 shihufeng 的回复:] [quote=引用 1 楼 foruok 的回复:] 必须得有QApplication才能使用其它控件。
代码如下,我做过了QApplication的实例化 class TabDialog : public QDialog { Q_OBJECT public: explicit TabDialog(/*const QString &fileName, QWidget *parent = 0*/); //explicit TabDialog(const string &fileName, QWidget *parent = 0); ~TabDialog(); }; TabDialog::TabDialog(/*const QString &fileName, QWidget *parent*/) //: QDialog(parent) { int k=0; QApplication* app = new QApplication(k, NULL); } 然后生成的QT dll,在新的工程里调用 TabDialog* tabdialog = new TabDialog(); 会在构造函数这块出错:QWidget: must construct a QApplication before a QWidget[/quote] 在构造QDialog之前构造QApplication,一般放在main函数里 QWidget: must construct a QApplication before a QWidget 错误不是写的很清楚么,注意``before''[/quote] 我在用dll内部类实例化一个对象前 new 一个 QWidget, 但是没有起作用。
  • 打赏
  • 举报
回复
引用 2 楼 shihufeng 的回复:
[quote=引用 1 楼 foruok 的回复:] 必须得有QApplication才能使用其它控件。
代码如下,我做过了QApplication的实例化 class TabDialog : public QDialog { Q_OBJECT public: explicit TabDialog(/*const QString &fileName, QWidget *parent = 0*/); //explicit TabDialog(const string &fileName, QWidget *parent = 0); ~TabDialog(); }; TabDialog::TabDialog(/*const QString &fileName, QWidget *parent*/) //: QDialog(parent) { int k=0; QApplication* app = new QApplication(k, NULL); } 然后生成的QT dll,在新的工程里调用 TabDialog* tabdialog = new TabDialog(); 会在构造函数这块出错:QWidget: must construct a QApplication before a QWidget[/quote] 在构造QDialog之前构造QApplication,一般放在main函数里 QWidget: must construct a QApplication before a QWidget 错误不是写的很清楚么,注意``before''
清涧煎饼 2014-12-24
  • 打赏
  • 举报
回复
引用 1 楼 foruok 的回复:
必须得有QApplication才能使用其它控件。
代码如下,我做过了QApplication的实例化 class TabDialog : public QDialog { Q_OBJECT public: explicit TabDialog(/*const QString &fileName, QWidget *parent = 0*/); //explicit TabDialog(const string &fileName, QWidget *parent = 0); ~TabDialog(); }; TabDialog::TabDialog(/*const QString &fileName, QWidget *parent*/) //: QDialog(parent) { int k=0; QApplication* app = new QApplication(k, NULL); } 然后生成的QT dll,在新的工程里调用 TabDialog* tabdialog = new TabDialog(); 会在构造函数这块出错:QWidget: must construct a QApplication before a QWidget
foruok 2014-12-24
  • 打赏
  • 举报
回复
必须得有QApplication才能使用其它控件。

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧