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 圆角?的主要内容,如果未能解决你的问题,请参考以下文章

QLineEdit 仿QQ签名框

QHBoxLayout QFormLayout 遍历子部件,查找QLineEdit控件

将文件拖入 QtGui.QLineEdit() 以设置 url 文本

将对话框中的 qlineEdit 中的一段文本放入 qlineEdit @ mainwindow 的问题

禁用编辑 QLineEdit

QlineEdit 和信号&槽