QLineEdit圆角?

Bra*_*ark 6 c++ user-interface qt

有没有办法绕过QLineEdit小部件的角落?如果不是有类似的小部件,我可以做到这一点?

视觉意义:

在此输入图像描述

解决:(请参见下面的其他信息)

      QLineEdit *lineEdit = new QLineEdit;

      lineEdit -> setStyleSheet("QLineEdit {  border: 2px solid gray;"
                                             "border-radius: 5px;}");
Run Code Online (Sandbox Code Playgroud)

Sin*_*all 7

您可以使用StyleSheets设置Qt组件的样式,就像在制作网站时使用它们一样.您可以通过两种方式设置样式表:在应用程序的代码中,或在QtDesiner中.

要做到这一点在QtDesiner(这是最方便的),您已经在窗体上放置组件上单击鼠标右键,然后按"编辑样式表"(或者"更改样式",对不起,我的Qt是不是英语,所以我不确定该选项的确切名称).将打开一个窗口,可以编辑元素的样式表.

它非常方便,因为它有一些有用的选项,比如在那里添加资源或颜色或字体,你只需按几个按钮就可以通过GUI设置所需的选项,而无需键入甚至知道CSS语法.

代码中,您可以这样做(示例):

SomeComponent->setStyleSheet("QLineEdit { border-radius: 5px; }");
Run Code Online (Sandbox Code Playgroud)

是关于样式表的文档.


Rol*_*lle 5

使用样式表。来自http://doc.qt.io/archives/qt-4.7/stylesheet-examples.html

QLineEdit {
 border: 2px solid gray;
 border-radius: 10px;
}
Run Code Online (Sandbox Code Playgroud)

另外,如果你想亲自动手,你可以随时重写paintEvent。

  • @BrandonClark,优点是您可以使组件看起来像您可以想象的_anytihng_。缺点是您需要自己处理绘图。 (2认同)