gpt4 book ai didi

qt - QEventLoop : Cannot be used without QApplication

转载 作者:行者123 更新时间:2023-12-02 08:42:18 29 4
gpt4 key购买 nike

我正在尝试根据特定架构验证 xml 文件。
因此,我将架构加载到 QXmlSchema 对象中。但我遇到了一些奇怪的错误。
我的代码如下所示:

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 Designer版本:qt4-designer 4:4.8.1-0ubuntu4.1
我的 Qt Creator 版本:qtcreator 2.4.1-0ubuntu2

有人可以帮我解决这个问题吗?
谢谢

最佳答案

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

如果您要创建 GUI 应用程序,通常您应该在 main() 函数中包含少量代码,例如:

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();

return a.exec();
}

MainWindow 的构造函数中开始代码:

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";
}

关于qt - QEventLoop : Cannot be used without QApplication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10697107/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com