2013-09-06 3 views
0

У меня есть приложение PYQT4. Я пытаюсь отображать много разных сообщений на основе взаимодействия с пользователем. Проблема, с которой я столкнулась, - это отображаемое сообщение, использующее QMessageBox doest, в стиле чистого стиля, тогда как другая часть приложения хорошо работает с стилем Clean look.стиль cleanlook для окна сообщений pyqt4

Я пытаюсь использовать следующий код, но это doenst работает для сообщения.

# set messagebox properties 
msgbox=QMessageBox() 
font = QFont() 
font.setFamily(_fromUtf8("Levenim MT")) 
font.setPointSize(15) 
msgbox.setFont(font) 
msgbox.setStyle(QStyleFactory.create('Cleanlooks')) 
msgbox.information(self,"Download Message", "donuts") 

может кто-нибудь сказать мне, как сделать это в чистом стиле выглядит так же

ответ

0

Чтобы изменить стиль вашего приложения, вы должны использовать QApplication.setSyle, то есть последовательный стиль в целом графический интерфейс пользователя.

Настройка стиля QWidgets устанавливает стиль самого виджета.

QWidget.setStyle:

Устанавливает стиль GUI виджета в стиле. Собственность объекта стиля не передается.

Если стиль не задан, виджет использует стиль приложения, QApplication.style().

Настройка стиля виджета не влияет на существующие или будущие дочерние виджеты.

Предупреждение: Эта функция особенно полезна для демонстрационных целей, где вы хотите показать возможности стилизации Qt. Реальные приложения должны избегать этого и использовать один согласованный стиль графического интерфейса.

Это означает, что если вы хотите изменить стиль виджета, и все это дети, вам нужно явно установить его для всех детей, перебирая их:

cleanlooks = QStyleFactory.create('cleanlooks') 
msgbox.setStyle(cleanlooks) 
for child in msgbox.findChildren(QWidget): 
    child.setStyle(cleanlooks) 
+0

Спасибо за разъяснение. – Sri