Python 2.7: Тематическое «Общее диалоговое окно» интерфейсы Tkinter через TTK?
-
10-10-2019 - |
Вопрос
Python 2.7 (32-битная) Windows: мы экспериментируем с поддержкой Python 2.7 тематического Tkinter (ttk
) для простых графических интерфейсов и ушел очень впечатлен! Одна область, где новая поддержка темы, похоже, подошла к тому, как общие общие диалоги с ОС обернуты.
Исправлено: другими словами, MessageBox
а также ColorChooser
Общие диалоги имеют «уродливые» кнопки «уродливые» кнопки Win 95 в стиле стиля по сравнению с тематическими (округленными/градиентными) кнопками, которые обычно отображаются на этих общих диалогах под XP, Vista и Windows 7. (Я тестирую на всех 3 платформах с идентичные, не тематические результаты).
Примечание: общие диалоги с FileDialog (askopenfilename
, askopenfilenames
, asksaveasfilename
, askdirectory
) все правильно.
import tkMessageBox as messagebox
messagebox.showinfo()
import tkColorChooser as colorchooser
color = colorchooser.askcolor( parent=root, title='Customize colors' )
Любые идеи о том, что требуется, чтобы получить Tkinter MessageBox
а также ColorChooser
Общие диалоги для совместимы с темой ОС (по крайней мере, под Windows XP или выше)?
Решение
Ваше наблюдение в основном правильное. Я вижу, на что вы имеете в виду в messagebox
и colorchooser
. Анкет Тем не менее, у моих файлов, похоже, есть правильно закругленные кнопки и т. Д.
Моя рекомендация для создания MessageBox - создать свой собственный BessageBox, используя TopLevel
Виджет, а затем определите, что вам нужно на нем, и подходящее поведение для различных кнопок (это определенно немного сложнее, чем просто использовать Bessagebox, но если вам действительно нужны кнопки «Новый стиль», это будет работать).
Я не думаю, что вы можете взломать решение для colorchooser
Проблема, однако.
Я, хотя на минуту, возможно, Python 3.1 решил эту проблему, но, к сожалению, я попытался, и это не так. Я полагаю, что если вам нужен пользователь, чтобы выбрать цвет, кнопки должны быть уродливыми.
Другие советы
Диалоговые окна для более лучшего взгляда - это компилирование вашего скрипта с исполняющим численность, используя pyinstaller
. Анкет Я объясняю это больше здесь.
tl; dr, кажется, что компиляция с pyinstaller
Позволяет иметь диалоговые окны со стилем в настоящее время работает ОС, но не пользовательские стили.