Стиль Qt 4.6 QLineEdit. Как я разрабатываю серую границу выделения, таким образом, она округлена?

Я разрабатываю 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;
}

Изображения с и без фокуса: without with

9
задан Glorfindel 12 July 2019 в 03:06
поделиться

2 ответа

На Mac:

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

должно работать, см. этот ответ. В противном случае вам придется подкласс QStyle и удалить там рисование прямоугольника фокуса. См. Nokia FAQ 736 (How to avoid drawing focus rect)

5
ответ дан 3 November 2019 в 07:47
поделиться

Стилизация QLineEdit:focus должным образом должна решить вашу проблему см. Qt Stylesheet Reference, List of Pseudo States

-1
ответ дан 3 November 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: