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所有widget都有黑框

Qt - QDialog,QWidget实现模态及非模态(模态Widget不能有父窗口,如果设置无边框就不能阻塞父窗口,但是可以强行设置指定Qt::Dialog,还可以setAttribute(Qt:

从 PyQt 中的 QPushButton 获取文本

QTableWidget 与其父 QWidget 的边框对齐

使用 QWidget::find() 导出的库挂钩不起作用

qt 怎么为外围的widget添加边框