gpt4 book ai didi

c++ - 使用 QWebPage 获取运行时错误

转载 作者:太空狗 更新时间:2023-10-29 21:45:59 25 4
gpt4 key购买 nike

我已经创建了一个 Qt GUI 应用程序,但我没有触及任何有关 GUI 的内容。我修改了mainwindow.cpp和工程文件。

主窗口.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QWebPage>
#include <QWebFrame>

QWebPage page;

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

connect(page.mainFrame(), SIGNAL(loadFinished(bool)), this, SLOT(pageLoaded1(bool)));
QUrl router("http://192.168.1.1");
page.mainFrame()->load(router);
}

MainWindow::~MainWindow()
{
delete ui;
}

无标题.pro:

#-------------------------------------------------
#
# Project created by QtCreator 2013-05-01T23:48:00
#
#-------------------------------------------------

QT += core gui webkit webkitwidgets

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = untitled
TEMPLATE = app


SOURCES += main.cpp\
mainwindow.cpp

HEADERS += mainwindow.h

FORMS += mainwindow.ui

主要.cpp:

#include "mainwindow.h"
#include <QApplication>

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

return a.exec();
}

错误:

---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Error!

Program: ...tled-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\debug\untitled.exe
Module: 5.0.2
File: global\qglobal.cpp
Line: 1977

ASSERT: "!"No style available without QApplication!"" in file kernel\qapplication.cpp, line 962

(Press Retry to debug the application)
---------------------------
Abort Retry Ignore
---------------------------

此处插入额外字符以绕过字符要求。

最佳答案

main.cpp 中,确保您创建了一个应用程序对象,即使您不直接使用:

QApplication app;

// Below you can then create the window

编辑

问题是您正在创建一个 QWebPage 作为全局对象,并且在创建 QApplication 之前。要解决此问题,请将页面设为 MainWindow 类的成员。还要使页面成为指针,否则会出现其他问题。

即在 mainwindow.h 中:

private:

QWebPage* page;

mainwindow.cpp 中:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QWebPage>
#include <QWebFrame>

// Remove this!!
// QWebPage page;

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

// Create the page here:
page = new QWebPage(this);

connect(page.mainFrame(), SIGNAL(loadFinished(bool)), this, SLOT(pageLoaded1(bool)));
QUrl router("http://192.168.1.1");
page.mainFrame()->load(router);
}

MainWindow::~MainWindow()
{
delete ui;
}

关于c++ - 使用 QWebPage 获取运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16330062/

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