【问题标题】:QLineEdit Rounded Corners?QLineEdit 圆角?
【发布时间】:2012-07-17 06:19:30
【问题描述】:

有没有办法使 QLineEdit 小部件的角变圆?如果没有,是否有类似的小部件我可以这样做?

视觉意义:

已解决:更多信息见下文

      QLineEdit *lineEdit = new QLineEdit;

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

【问题讨论】:

    标签: c++ qt user-interface


    【解决方案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。但如果你只需要圆角,我会选择样式表
    猜你喜欢
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多