QLineEdit 圆角?
Posted
技术标签:
【中文标题】QLineEdit 圆角?【英文标题】:QLineEdit Rounded Corners? 【发布时间】:2012-07-17 06:19:30 【问题描述】:有没有办法使 QLineEdit 小部件的角变圆?如果没有,是否有类似的小部件我可以这样做?
视觉意义:
已解决:(更多信息见下文)
QLineEdit *lineEdit = new QLineEdit;
lineEdit -> setStyleSheet("QLineEdit border: 2px solid gray;"
"border-radius: 5px;");
【问题讨论】:
【参考方案1】:您可以使用 StyleSheets 来设置 Qt 组件的样式,就像在制作网站时使用它们一样。您可以通过两种方式设置样式表:在应用程序代码中或在 QtDesiner 中。
要在 QtDesiner 中执行此操作(最方便),右键单击您放置在表单上的组件,然后按“编辑样式表”(或者可能是“更改样式表”,抱歉,我的 Qt 不是英文的,所以我不确定该选项的确切名称)。将打开一个窗口,您可以在其中编辑元素的样式表。
它非常方便,因为它有一些有用的选项,例如在此处添加资源、颜色或字体,您只需按几个按钮即可通过 GUI 设置所需的选项,而无需键入甚至了解 CSS 语法。
从代码,你可以这样做(例子):
SomeComponent->setStyleSheet("QLineEdit border-radius: 5px; ");
Here 是关于样式表的文档。
【讨论】:
@BrandonClark,是的,改变了,感谢您指出这一点 您好,既然您提到了网站中的样式表,那么网站中可用的所有样式都有效吗?比如:active
、'transition'、margin
等?【参考方案2】:
使用样式表。来自http://doc.qt.io/archives/qt-4.7/stylesheet-examples.html:
QLineEdit
border: 2px solid gray;
border-radius: 10px;
此外,如果您想亲自动手,您可以随时覆盖paintEvent。
【讨论】:
绘画听起来很有趣。优点?缺点? @BrandonClark,优点是您可以使组件看起来像您可以想象的 anytihng。缺点是您需要自己处理绘图。 这里有一个很好的关于如何覆盖paintEvent的教程:zetcode.com/gui/qt4/painting。但如果你只需要圆角,我会选择样式表以上是关于QLineEdit 圆角?的主要内容,如果未能解决你的问题,请参考以下文章
QHBoxLayout QFormLayout 遍历子部件,查找QLineEdit控件
将文件拖入 QtGui.QLineEdit() 以设置 url 文本