Цельностеклянный стиль Vista / 7 с wxPython

Это возможно? Я действительно хочу, чтобы моя программа wxPython (поскольку они работают только с окнами) использовала тему стекла.

Кроме того, если это возможно, есть ли способ сделать диалоги, похожие на те, что появились в Vista, без написания большого количества настраиваемого содержимого?

http://imgkk.com/i/soYWuf.jpg


person Gabriele Cirulli    schedule 10.11.2009    source источник


Ответы (3)


wxPython основан на библиотеке wxWidgets, поэтому его возможности основаны на возможностях wxWidgets.

Я ничего не вижу на веб-сайте wxWidgets о «стеклянном» интерфейсе, но я вижу, что он поддерживает текстуры, а элементы управления / формы могут быть сделаны полупрозрачный. Вы должны без особого труда смоделировать стеклянный интерфейс.

person Robert Harvey    schedule 10.11.2009
comment
я знаю, как установить прозрачность, но оно не слишком похоже на стекло перспективы (в основном из-за отсутствия размытия) - person Gabriele Cirulli; 11.11.2009

Немного поздно, но все равно отвечу ...

Нет встроенного способа воспользоваться эффектом стекла в теме Aero в Windows с помощью wxPython. Однако можно что-нибудь взломать вместе с Win32 API. Вам нужны две функции: _1 _ и DwmExtendFrameIntoClientArea. Просто используйте первое, чтобы проверить, включен ли Aero, затем вызовите метод GetHandle() в своем окне и передайте результат второму, чтобы получить эффект стекла.

Я никогда не использовал wxPython, поэтому это может быть сложнее (возможно, вам придется проделать больше работы по взаимодействию), но это должно помочь вам начать работу. Если вам нужна помощь с частью взаимодействия, поищите Программирование Win32 на Python.

person Sasha Chedygov    schedule 31.08.2010

wxPython должен копировать любую тему, которую поддерживают собственные виджеты ОС. Как это выглядит сейчас? Демонстрация wxPython выглядит правильно? Возможно, что манифест не был включен ... все, что я знаю, это то, что мои программы wxPython выглядят «правильно» в Windows 7, если я не использую общий виджет.

person Mike Driscoll    schedule 31.08.2010