Python 2.7: Тематическое «Общее диалоговое окно» интерфейсы Tkinter через TTK?

StackOverflow https://stackoverflow.com/questions/3991130

Вопрос

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 Позволяет иметь диалоговые окны со стилем в настоящее время работает ОС, но не пользовательские стили.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top