【问题标题】:Qt 4.6 QLineEdit Style. How do I style the gray highlight border so it's rounded?Qt 4.6 QLineEdit 样式。如何设置灰色高亮边框的样式,使其变圆?
【发布时间】:2011-02-05 00:49:57
【问题描述】:

我将 QLineEdit 设置为具有圆形边框以用作搜索框。边框本身的四舍五入很容易,但是我一生都无法弄清楚如何在小部件具有焦点时将其突出显示部分进行四舍五入。我试过 QLineEdit::focus,但这只会修改内部边框。下图显示了圆角 qlineedit 在获得焦点时是如何消失的。

QListView, QLineEdit {
    color: rgb(127, 0, 63);
    selection-color: white;   
    border: 2px groove gray;
    border-radius: 10px;
    padding: 2px 4px;
}
QLineEdit:focus {
    color: rgb(127, 0, 63);
    selection-color: white;   
    border: 2px groove gray;
    border-radius: 10px;
    padding: 2px 4px;
}

QLineEdit:edit-focus {
    color: rgb(127, 0, 63);
    selection-color: white;   
    border: 2px groove gray;
    border-radius: 10px;
    padding: 2px 4px;
}

有焦点和没有焦点的图像:

【问题讨论】:

    标签: qt qt4 qlineedit


    【解决方案1】:

    在 Mac 上:

    widget.setAttribute(Qt::WA_MacShowFocusRect, 0);
    

    应该可以,请参阅this answer。否则,您将不得不继承 QStyle 并删除那里的焦点矩形的绘图。见Nokia FAQ 736 (How to avoid drawing focus rect)

    【讨论】:

      【解决方案2】:

      适当地设置QLineEdit:focus 的样式应该可以解决您的问题,请参阅Qt Stylesheet Reference, List of Pseudo States

      【讨论】:

      • 伪状态只影响实际边框,不影响外部边框。我可能没有正确使用它。我添加了我的 QLineEdit:focus 和 QLineEdit:edit-focus 样式。图片保持不变。
      • 是的你是对的,这实际上改变了当焦点在小部件上时小部件的样式,它不影响焦点矩形,添加一个更好的答案,留作参考
      猜你喜欢
      • 2022-10-19
      • 2013-07-23
      • 2018-04-05
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      相关资源
      最近更新 更多