2017-10-20 165 views
0

我试图动态QWebEngineView到已经存在的布局。动态添加QWebEngineView到布局

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
    QWebEngineView view; 
    view.setUrl(QUrl(QStringLiteral("http://www.qt.io"))); 
    view.resize(1024, 750); 
    view.show(); 
    ui->splitter->addWidget(view); 
} 

运行此我得到error: C2664: 'void QSplitter::addWidget(QWidget *)': cannot convert argument 1 from 'QWebEngineView' to 'QWidget *'

我想在本地文件系统预览和编辑HTML /文本/图片文件创建程序。这意味着我需要在主窗口中切换小部件以执行不同的任务。在我的设计师形式中,我有我想添加QWebEngineView的分离器布局。

我尝试了Qt Designer for WebEngine和WebKit的默认示例。他们按计划工作,而不是使用UI布局,他们只使用代码来添加和管理小部件。我想使用表单布局,这意味着这个选项不适合我。

我该如何解决这个问题? 这是可行的解决方案,我想达到什么或有更好的?

+0

不能从实例转换为指针... –

回答

1

试试这个方法:

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
    QWebEngineView *view; 
    view = new QWebEngineView(this); 
    view->setUrl(QUrl(QStringLiteral("http://www.qt.io"))); 
    view->resize(1024, 750); 
    view->show(); 
    ui->splitter->addWidget(view); 
}