gpt4 book ai didi

c++ - QWebView::setUrl 不工作

转载 作者:行者123 更新时间:2023-11-30 00:56:13 26 4
gpt4 key购买 nike

我是这个问答网站和 Qt 世界的新手。我想在我的应用程序中集成一个网页。我想获取标签输入的值,但它不起作用,你能帮我吗?

这是我类的构造函数:

MainWindow::MainWindow(QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *container = new QVBoxLayout;


QWebView *cart = new QWebView();
QWebPage *page = new QWebPage();

cart->setUrl(QUrl("http://www.mysite.com/"));


QWebFrame *main = cart->page()->mainFrame();

QWebElement document = main->documentElement();
QWebElement t1 = document.findFirst("input[name=myname]");
QString storedText = t1.attribute("value", "defaultvalue");

qDebug() << "T1 value:" << storedText;
storedText = t1.attributeNS(QString::Null(), "value");
qDebug() << "T1 ns value:" << storedText;
QVariant v = t1.evaluateJavaScript("this.value");
qDebug() << "Javascript value:" << v.toString(); // ok. returns c

container->addWidget(cart);

setLayout(container);
this->show();
}

网页出现在我的应用程序中,但命令行上的输出是这样的:

T1 value: ""
T1 ns value: ""
Javascript value: ""

变量 storedText 的值为 ""

最佳答案

那是因为在使用QWebView::setUrl()设置URL之后,你必须等待QWebView::loadFinished(bool ok) signal在检索任何数据之前。查看documentation .

因此,将元素信息的检索代码移动到 QWebView::loadFinished() signalslot 中。

关于c++ - QWebView::setUrl 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10767800/

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