QLineEdit圆角?

9

有没有办法将QLineEdit小部件的角落圆形化?如果没有,是否有类似的小部件可以实现这一功能?

可视化效果:

enter image description here

解决方法:更多信息请参见下文

      QLineEdit *lineEdit = new QLineEdit;

      lineEdit -> setStyleSheet("QLineEdit {  border: 2px solid gray;"
                                             "border-radius: 5px;}");
2个回答

10
你可以像制作网站一样使用 样式表 来设置Qt组件的样式。你可以通过两种方式设置样式表:在应用程序代码中或在QtDesiner中。
要在 QtDesiner 中进行操作(这是最方便的方法),右键单击已放置在窗体上的组件,然后点击“编辑样式表”(或者可能是“更改样式表”,抱歉我的Qt不是英文版,所以我不确定选项的确切名称)。一个窗口将打开,让你编辑元素的样式表。
这非常方便,因为它有一些有用的选项,例如添加资源、颜色或字体,你只需要通过GUI按几个按钮即可设置所需选项,无需输入甚至了解CSS语法。
代码 中,你可以像这样操作(例如):
SomeComponent->setStyleSheet("QLineEdit { border-radius: 5px; }");

这里 是关于样式表的文档。


你好,既然你提到了网站中的样式表,那么所有在网站中可用的样式都能起作用吗?比如说:activetransitionmargin等等? - SexyBeast

5

涂鸦听起来很有趣。优点?缺点? - Brandon Clark
2
@BrandonClark,优点在于你可以让组件看起来像你能想象的任何东西。缺点在于你需要自己处理绘图。 - SingerOfTheFall
1
这里有一个关于如何重写paintEvent的不错教程:http://zetcode.com/gui/qt4/painting/。但是如果你只需要圆角,我会选择使用样式表。 - Rolle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接