Qt 4.6 QLineEdit Style. Как мне оформить серую рамку выделения, чтобы она была округлой? - PullRequest
9 голосов
/ 07 апреля 2010

Я создаю 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;
}

Изображения с и без фокуса: без http://img688.imageshack.us/img688/1986/screenshot20100406at310.png с http://img251.imageshack.us/img251/1986/screenshot20100406at310.png

Ответы [ 2 ]

5 голосов
/ 15 апреля 2010

на Mac:

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

должно работать, см. этот ответ . В противном случае вам придется создать подкласс QStyle и удалить рисунок прямоугольника фокуса. См. Часто задаваемые вопросы по Nokia 736 (Как избежать рисования фокуса прямоугольным)

0 голосов
/ 14 апреля 2010

Styling QLineEdit:focus соответственно должен позаботиться о вашей проблеме, см. Справочник по таблице стилей Qt, Список псевдо-состояний

...