QWidget - 从 C++ 代码设置边框
Posted
技术标签:
【中文标题】QWidget - 从 C++ 代码设置边框【英文标题】:QWidget - set border from C++ code 【发布时间】:2017-03-19 18:15:22 【问题描述】:我在 Qt 5.8 中有 QWidget 实例(其中包含其他 QWidget),我想在它周围设置一些边框。有没有办法从 C++ 做到这一点而不影响它的任何孩子及其设置和位置?
我不想使用样式表,它需要与任何系统样式一起使用。
【问题讨论】:
至少,您可以使用 C++ 设置样式表,例如w.setStyleSheet("border:1px solid rgb(0, 255, 0); ")
。
【参考方案1】:
你应该使用继承 QWidget 的 QFrame。
并将下面方法中的Frame::Shape设置为QFrame::Box。这将在您的框架周围产生边框。
QFrame::setFrameShape( QFrame::Shape);
并使用 setLineWidth 设置线宽
QFrame::setLineWidth(int);
【讨论】:
谢谢,这完全符合我的要求 :)。使用 QFrame 而不是 QWidget 有什么缺点吗? 也许吧!但我什么也没看到。它是一个具有一些额外属性的小部件。所以不用担心。 有没有办法在没有样式表的情况下指定边框颜色?以上是关于QWidget - 从 C++ 代码设置边框的主要内容,如果未能解决你的问题,请参考以下文章
Qt - QDialog,QWidget实现模态及非模态(模态Widget不能有父窗口,如果设置无边框就不能阻塞父窗口,但是可以强行设置指定Qt::Dialog,还可以setAttribute(Qt: