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

标签 c++ windows qt sockets qtwebkit

最近开始为 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/

相关文章:

c++ - "Undefined reference to"- C++/Qt 中的错误/静态成员变量

c++ - 在 Qt 中为 QTableView 创建弹出菜单

windows - 如何确保 az kubectl 凭据不会过期并且 kubectl 可以通过生产中的脚本运行?

C++ QT : Function Taking Pointer To Signal And Slot Function

c++ - 将项目从QTreeWidget拖动到QGraphicsView

c++ - 迭代中的指针算法是否溢出安全?

c++ - 二进制表达式 ('const char*' 和 'const char *' 的无效操作数)

windows - 用于在资源管理器中双击文件并在Windows Terminal中使用WSL应用程序(Neovim,Vim等)启动/运行该文件的脚本

windows - 为什么在 Windows 上使用 CMake 进行构建时会出现重复的符号链接(symbolic link)器错误?

c++ - 在 Visual Studio 2013 上使用 QT