PyWin32: тема Windows Classic

1

В папке demos PyWin32 образец win32gui_dialog.py использует классические элементы управления Windows. Могут ли отображаться кнопки Windows Vista​​strong > с помощью PyWin32, и если да, то как? Я использую ActivePython 3.1, если это имеет значение.

Пример:

PyWin32 http://imagespark.net/files/old.png

  • 1
    сопутствующий интерес: новый модуль 'ttk' предоставляет почти родные темы для Windows vista / 7 - docs.python.org/dev/library/ttk.html ... скриншоты доступны по адресу: tkdocs.com/tutorial
Теги:
python-3.x
pywin32
windows-vista

3 ответа

2
Лучший ответ

Короткий ответ: громкое ДА.

Я знаю, что это возможно, потому что я видел, как это делалось раньше. но я не совсем уверен, как это делается.

По крайней мере, вы можете использовать IronPython и использовать встроенную платформу .NET.NET с помощью clr.

Если вы не заинтересованы в IronPython, то можете ли вы рассмотреть что-то в строках easyGUI или TkInter?

  • 0
    Я бы предпочел не использовать IronPython. Вы все еще знаете, где вы видели, что это было сделано раньше?
  • 1
    Используя TkInter сейчас.
Показать ещё 1 комментарий
2

Вам потребуется добавить бок о бок манифест, указывающий правильную версию ComCtl32.dll на интерпретатор Python. К счастью, нет необходимости изменять сам исполняемый файл интерпретатора.

  • Создайте файл с именем python.exe.manifest в каталоге, содержащем python.exe.
  • Поместите следующее содержимое в этот файл:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly 
   xmlns="urn:schemas-microsoft-com:asm.v1" 
   manifestVersion="1.0">
 <assemblyIdentity 
    processorArchitecture="x86" 
    version="5.1.0.0"
    type="win32"
    name="python.exe"/>
 <description>Python</description>
 <dependency>
  <dependentAssembly>
    <assemblyIdentity
         type="win32"
         name="Microsoft.Windows.Common-Controls"
         version="6.0.0.0"
         publicKeyToken="6595b64144ccf1df"
         language="*"
         processorArchitecture="x86"/>
  </dependentAssembly>
 </dependency>
</assembly>

Возможно, вы захотите скопировать python.exe.manifest в pythonw.exe.manifest.

  • 0
    Спасибо, но это не сработало. Ничего не произошло.
  • 0
    Если скрипт выполняется под PythonWin.exe, то, вероятно, манифест должен быть PythonWin.exe.manifest.
Показать ещё 3 комментария
0

Пробовал ли вы использовать модуль 'winxpgui' вместо модуля < win32gui '?

Я не уверен, есть ли модуль "winvistagui" или "win7gui", но "winxpgui" существует и может работать, поскольку он содержит манифест.

  • 0
    Я пробовал WinXP, но это не сработало.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню