gpt4 book ai didi

c++ - QtWebKit C++ 连接 : cannot convert QWebView to SOCKET

转载 作者:行者123 更新时间:2023-11-28 02:38:14 24 4
gpt4 key购买 nike

最近开始为 Windows 编写一些程序,但我根本无法让我的程序运行。我正在尝试实现一个主要可以在前端使用 HTML 并使用 Javascript 控制后端的环境。在 Linux 上,我设法向“JavaScriptCore”添加了功能和东西,但 Windows 对我并不友善。

目前我正在 try catch URL 更改事件,允许特殊 URL 执行命令,但是我收到以下错误:

error: C2664: 'connect' : cannot convert parameter 1 from 'QWebView *' to 'SOCKET'
There is no context in which this conversion is possible

我没有找到关于“QWebView to SOCKET”的单个搜索结果,所以我不知道该怎么做,只能问你们。

这是我的代码。我不太擅长编程,请保持温柔;)

#include <QtGui>
#include <QtWebKit>
#include <QApplication>
#include <QWebView>
#include <iostream>

using namespace std;

void test()
{
cout << "Hello world";
}

int main(int argc, char** argv) {
QApplication app(argc, argv);
QWebView view;
view.setWindowFlags(Qt::CustomizeWindowHint);
view.setWindowFlags(Qt::FramelessWindowHint);
view.setFixedSize(1000,600);
view.setStyleSheet("background:transparent;");
view.setAttribute(Qt::WA_TranslucentBackground);
view.setUrl(QUrl("http://google.com"));
view.setWindowTitle("test v0.1");
connect(view, SIGNAL(urlChanged(QUrl)), SLOT(test()));
view.show();

return app.exec();
}

最佳答案

试试这个:

QObject::connect(&view, &QWebView::urlChanged, test);

您正在使用仅适用于 QObject 和槽的旧连接语法,test 不是槽,它不是 QObject 的函数 派生类,它是一个免费函数,因此您必须使用自 Qt 5 以来可用的新语法。

当您不在 QObject 中时,您无权访问 connect(),这就是我的示例使用 QObject 的原因命名空间在 main() 中调用它。正如 DNT 指出的那样,在您的情况下,它只是恰好被命名为“connect”的其他一些功能。

您犯的另一个错误是您传递了 View ,但是 connect() 使用指针,因此您必须使用 & 运算符来获取指向 View 的指针.

关于c++ - QtWebKit C++ 连接 : cannot convert QWebView to SOCKET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822338/

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