2017-10-20 161 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); 
}