首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在QWebEngineView周围显示边框?

如何在QWebEngineView周围显示边框?
EN

Stack Overflow用户
提问于 2018-09-24 19:03:29
回答 1查看 727关注 0票数 4

我有一个QGraphicsWidget,用于绘制和显示许多项目,包括使用QGraphicsProxyWidget的QWebEngineView。我能够将web内容加载到QWebEngineView中,但是我想让视图包含一个边框。我使用"setStyleSheet“尝试添加边框,但这似乎不起作用。下面的代码位于我的QGraphicsWidget类的构造函数中,用于添加QWebEngineView:

代码语言:javascript
复制
 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);

目前的情况如下:

我希望它看起来像:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-24 21:16:36

问题

通常,设置StyledBackground属性,然后设置正确的样式表和内容边距,如下所示:

代码语言:javascript
复制
view->setAttribute(Qt::WA_StyledBackground);
view->setStyleSheet("border: 1px solid black;");
view->setContentsMargins(1, 1, 1, 1);

应该能起作用。

但是,QWebEngineView似乎不尊重内容利润率:

解决办法

我建议您将QWebEngineView作为另一个QWidget的子部件,并选择父小部件的样式。

示例

下面是我为您准备的如何更改代码以实现建议的解决方案的示例:

代码语言:javascript
复制
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);

结果

以下是加载Google时的结果:

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52485735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档