PyWin32:Windows经典主题

1 投票
3 回答
1617 浏览
提问于 2025-04-15 17:25

在PyWin32的示例文件夹里,有一个叫win32gui_dialog.py的例子,它使用了经典的Windows控件。请问,能不能用PyWin32显示Windows Vista风格的按钮,如果可以的话,应该怎么做呢?我现在用的是ActivePython 3.1,这个有影响吗?

示例:

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

3 个回答

0

你有没有试过用'winxpgui'这个模块,而不是'win32gui'这个模块呢?

我不太确定有没有'winvistagui'或者'win7gui'这样的模块,但'winxpgui'是存在的,可能会有效,因为它包含了一个清单。

2

你需要在Python解释器旁边添加一个清单文件,这个文件里要指定一个正确版本的ComCtl32.dll。幸运的是,你不需要去修改解释器的可执行文件本身。

  • 在包含python.exe的文件夹里,创建一个名为python.exe.manifest的文件。
  • 在这个文件里放入以下内容:
<?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

2

简短的回答是:绝对可以。

我知道这是可能的,因为我见过有人这样做过。不过,我对具体怎么做还不是很确定。

至少,你可以使用 IronPython,通过使用 clr 来利用 Windows 自带的 .NET 框架。

如果你对 IronPython 不感兴趣,那你可以考虑使用类似 easyGUITkInter 的东西吗?

撰写回答