2012-05-22 9 views
2

Я использую PyQt4 для создания интерфейса с несколькими входами QLineEdit и QSpinBox. Я хочу дать неплохую округлую внешность, но это дает проблему в случае спинбокс.Установка граничного радиуса для QSpinBox/QComboBox имеет неожиданный побочный эффект для элементов управления вверх/вниз

Соответствующие биты таблицы стилей выглядит следующим образом:

QDialog { 
    background-color: #444; 
} 

QLabel, QLineEdit, { 
    background-color: #eee; 
    border-radius: 8px; 
} 

QSpinBox{ 
    background-color: #eee; 
} 

Давая интерфейс, глядя, как это:

UI screenshot

Теперь, когда я включаю border-radius (даже со значением 0) для QSpinBox и QComboBox, я получаю это

Glitchy UI screenshot

Обратите внимание на то, как стрелки изменились с Windows XP/Vista на простой вид по умолчанию.

Почему это происходит и как я могу его предотвратить?

Что я хотел бы видеть, так это то, что основные формы спинбокса и combobox имеют форму правки. Я не пробовал настраивать собственные изображения стрелок, так как я предпочел бы использовать собственные значения по умолчанию. Или это действительно мой лучший/единственный вариант? Благодаря!

+0

JNK будет очень сердиться на вас –

+0

@ Артём: Кто или что такое JNK? – Junuxx

+1

этот парень http://stackoverflow.com/users/397952/jnk –

ответ

2

Пройдите через эту QStyle, где вы получите идею изменить стиль вашего виджета QWindowsStyle, QMacStyle или QMotifStyle. А также, если вы установили таблицу стилей конкретного виджета, вы будете обновлены только значениями set, остальные другие объекты: inherited из своего parent виджета. поэтому попробуйте указать widget style тоже, как я сказал выше, установив stylesheet.

+0

Спасибо за ответ и ссылки. Пока я решил сделать свои собственные изображения в любом случае, но это может помочь в будущем. – Junuxx

2

Когда вы меняете таблицу стилей виджета, она оформляется в стиле QCssStyle. Он отбрасывает каждый нестандартный субконтроль в стиль по умолчанию. Вы должны настроить весь элемент управления, чтобы получить желаемый вид. Он не будет смешиваться

+0

Спасибо. Но почему фоновый цвет не вернул кнопки обратно по умолчанию? – Junuxx

+0

Потому что цвет фона не меняет форму –