Я разрабатываю QLineEdit для округления границ для использования в качестве поля поиска. Округление самих границ было легко, но я не могу выяснить ни за что в жизни, как к раунду выделенная часть виджета, когда это фокусируется. Я попробовал QLineEdit:: фокус, но это только изменяет внутреннюю границу. Изображения ниже показывают, как иллюзия округленного 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;
}
На Mac:
widget.setAttribute(Qt::WA_MacShowFocusRect, 0);
должно работать, см. этот ответ. В противном случае вам придется подкласс QStyle
и удалить там рисование прямоугольника фокуса. См. Nokia FAQ 736 (How to avoid drawing focus rect)
Стилизация QLineEdit:focus
должным образом должна решить вашу проблему см. Qt Stylesheet Reference, List of Pseudo States