gpt4 book ai didi

c++ - connect() 找不到信号函数

转载 作者:行者123 更新时间:2023-11-27 22:56:31 29 4
gpt4 key购买 nike

我正在尝试像这样设置 connect():

QObject::connect(&webControl,
SIGNAL(Ui::MainWindow::loadFinished(bool)),
&w,
SLOT(Ui::MainWindow::loadFinished(bool)));

main() 函数中,但它给出了错误:

QObject::connect: No such signal QWebView::Ui::MainWindow::loadFinished(bool)

wwebControl 声明如下:

MainWindow w;
QWebView webControl;

这是我的文件:

ma​​inWindow.h

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void loadFinished(bool arg1);
private:
Ui::MainWindow *ui;
};

主窗口.cpp

void MainWindow::loadFinished(bool arg1)
{
}

为什么会出现此错误以及如何解决此问题?

最佳答案

你需要添加QWebView *webView;到你的mainwindow.h:

主窗口.h

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QWebView *getWebView() const;

public slots:
void loadFinished(bool arg1);
void setWebView(QWebView *webControl);

private:
Ui::MainWindow *ui;
QWebView *webView;
};

主窗口.cpp

...

QWebView *MainWindow::getWebView() const
{
return webView;
}

void MainWindow::setWebView(QWebView *webControl)
{
webView = webControl;
QObject::connect(webControl,
SIGNAL(loadFinished(bool)),
this,
SLOT(loadFinished(bool)));
}

如果你真的需要在 main.cpp 中声明 QWebView 然后将指针传递给 setWebView() 函数:

main.cpp

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

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QWebView webControl;
w.setWebView(&webControl);

w.show();

return a.exec();
}

关于c++ - connect() 找不到信号函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32470982/

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