首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QEventLoop:没有QApplication就不能使用

QEventLoop:没有QApplication就不能使用
EN

Stack Overflow用户
提问于 2012-05-22 14:49:05
回答 1查看 20K关注 0票数 4

我正在尝试根据特定的模式验证xml文件。

因此,我将模式加载到QXmlSchema对象中。但是我得到了一些奇怪的错误。

我的代码看起来像这样:

代码语言:javascript
复制
int main() {

QUrl url("http://www.schema-example.org/myschema.xsd");

QXmlSchema schema;
if (schema.load(url) == true)
    qDebug() << "schema is valid";
else
    qDebug() << "schema is invalid";

return 1;
}

当我尝试运行上面的代码时,Qt错误地说:

QEventLoop:没有QApplication就不能使用

QDBusConnection:在QCoreApplication之前创建的系统D_Bus连接。

应用程序可能运行不正常。

QEventLoop:没有QApplication就不能使用

我的Qt设计器版本: qt4-designer 4:4.8.1-0ubuntu4.1

我的Qt Creator版本: qtcreator 2.4.1-0ubuntu2

有人能帮我解决这个问题吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-22 15:59:48

除了其他功能之外,QXmlSchema还创建了一个继承自QObject的消息处理程序。由于此消息处理程序将使用Qt的事件系统,因此需要一个事件循环(处理事件的排队和路由的结构)。正如错误消息告诉您的那样,主事件循环将与QApplication一起创建。

如果要创建图形用户界面应用程序,通常应该在main()函数中包含少量代码,如下所示:

代码语言:javascript
复制
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  MainWindow w;
  w.show();

  return a.exec();
}

比如说,在MainWindow的构造函数中开始编写代码

代码语言:javascript
复制
MainWindow::MainWindow(QWidget *parent) :
  QMainWindow(parent),
  ui(new Ui::MainWindow)
{
  ui->setupUi(this);

  QUrl url("http://www.schema-example.org/myschema.xsd");

  QXmlSchema schema;
  if (schema.load(url) == true)
    qDebug() << "schema is valid";
  else
    qDebug() << "schema is invalid";
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10697107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档