簡體   English   中英

如何在 QWebEngineView 周圍顯示邊框?

[英]How do I display a border around a QWebEngineView?

我有一個 QGraphicsWidget,我用它來繪制和顯示許多項目,包括使用 QGraphicsProxyWidget 的 QWebEngineView。 我能夠將 Web 內容加載到 QWebEngineView,但我想讓視圖包含邊框。 我已經使用“setStyleSheet”嘗試添加邊框,但這似乎不起作用。 以下代碼在我的 QGraphicsWidget 類的構造函數中添加 QWebEngineView:

 QWebEngineView * view = new QWebEngineView();
 view->setFixedWidth(700);
 view->setFixedHeight(200);
 view->setStyleSheet("border: 10px border-color: black");
 view->load(QUrl("qrc:/myresources/guidetext.html"));

 QGraphicsProxyWidget * proxyView = new QGraphicsProxyWidget(this);    
 proxyView->setWidget(view);

這是它目前的樣子: 在此處輸入圖片說明 我希望它看起來像: 在此處輸入圖片說明

問題

通常,設置Qt::WA_StyledBackground屬性,然后設置正確的樣式表和內容邊距,如下所示:

view->setAttribute(Qt::WA_StyledBackground);
view->setStyleSheet("border: 1px solid black;");
view->setContentsMargins(1, 1, 1, 1);

應該做的伎倆。

但是,似乎QWebEngineView不尊重內容邊距:

QWebEngineView 覆蓋右下邊框

解決方法

我建議您將QWebEngineView另一個QWidget子項,並為父窗口小部件設置樣式。

例子

這是我為您准備的示例,說明如何更改代碼以實施建議的解決方案:

auto *proxyView = new QGraphicsProxyWidget();
auto *widget = new QWidget();
auto *view = new QWebEngineView(widget);
auto *l = new QVBoxLayout(widget);

l->addWidget(view);
l->setContentsMargins(1, 1, 1, 1);

widget->setAttribute(Qt::WA_StyledBackground);
widget->setStyleSheet("border: 1px solid black;");
widget->setFixedWidth(700);
widget->setFixedHeight(200);

view->load(QUrl("qrc:/myresources/guidetext.html"));

proxyView->setWidget(widget);

結果

這是加載谷歌時的結果:

QWebEngineView 周圍的整個邊框可見

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM