gpt4 book ai didi

c++ - Qt:在 QWebView::linkClicked(QUrl) 上响应时出现问题 - 插槽信号问题

转载 作者:行者123 更新时间:2023-11-30 01:32:56 25 4
gpt4 key购买 nike

我是 Qt 的新手。

我想在QWebView中响应linkClicked

我试过这样连接:

QObject::connect(ui->webView, SIGNAL(linkClicked(QUrl)),
MainWindow,SLOT(linkClicked(QUrl)));

但我收到错误:C:/Documents and Settings/irfan/My Documents/browser1/mainwindow.cpp:9: error: expected primary-expression before ',' token

当我使用 UI Editing Signals Slots 执行此操作时:

我在头文件中声明了插槽:

void linkClicked(QUrl &url);

在源cpp文件中:

void MainWindow::linkClicked(QUrl &url)
{
QMessageBox b;
b.setText(url->toString());
b.exec();
}

当我运行它时,它编译并运行但收到警告:

Object::connect: No such slot MainWindow::linkClicked(QUrl) 
in ui_mainwindow.h:100

执行此事件处理的正确方法是什么?

最佳答案

您声明它现在可以工作了,因为您将 QObject::connect 更改为 connect。现在我不是 100% 同意这一点,但我相信这样做的原因是通过调用 connect,您正在调用与属于您的应用程序一部分的对象关联的方法。即它就像做 this->connect(...)。这样,它与现有对象相关联 - 而不是调用静态方法 QObject::connect,后者对您的应用程序一无所知。

抱歉,如果不清楚,希望我明白了!

关于c++ - Qt:在 QWebView::linkClicked(QUrl) 上响应时出现问题 - 插槽信号问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/847157/

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