0
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <QWebEngineView>
#include <qDebug>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
#if 1
    auto btn  = new QPushButton;
    ui->gridLayout->addWidget(btn);
    qDebug()<<btn->winId();
#endif
    auto web = new QWebEngineView;
    ui->gridLayout->addWidget(web);
    web->load(QUrl("http://www.google.com"));
}

MainWindow::~MainWindow()
{
    delete ui;
}

这就是整个代码。视窗 10,Qt 5.5。

当我打开开关时,winId()会被调用,然后QtWebEngine就不能正常工作了。

我应该怎么办 ?

4

1 回答 1

0

在小部件可见之前不要调用 winId()。您可以设置在 QEvent::Show 上激活的 eventFilter,有关详细信息,请参阅http://doc.qt.io/qt-5/qobject.html#installEventFilter

于 2015-09-10T08:03:01.567 回答