Как отобразить границу вокруг QWebEngineView?

У меня есть QGraphicsWidget, который я использую для рисования и отображения нескольких элементов, включая QWebEngineView, используя QGraphicsProxyWidget. Я могу загрузить веб-контент в 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);

Вот как это выглядит в настоящее время:
введите описание изображения здесь
Как бы я хотел, чтобы это выглядело так:
введите описание изображения здесь

1

Решение

Обычно, установка 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);

Вот результат при загрузке Google:

Вся граница вокруг QWebEngineView видна

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]