【问题标题】:PyWin32: Windows Classic themePyWin32:Windows 经典主题
【发布时间】:2009-12-28 11:28:01
【问题描述】:

在 PyWin32 演示文件夹中,win32gui_dialog.py 示例使用 经典窗口 控件。 Windows Vista 主题按钮是否也可以使用 PyWin32 显示,如果可以,如何显示?我正在使用 ActivePython 3.1,如果这有什么不同的话。

示例:

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

【问题讨论】:

标签: python windows windows-vista python-3.x pywin32


【解决方案1】:

简短回答:肯定的。

我知道这是可能的,因为我以前见过它。但我并不完全确定它是如何完成的。

至少,您可以使用IronPython 并通过使用 clr 来使用 Windows 的内置 .NET 框架。

如果您对 IronPython 不感兴趣,那么您是否可以考虑类似 easyGUITkInter 的内容?

【讨论】:

  • 我宁愿不使用 IronPython。你还知道你以前在哪里看到过它吗?
  • Reshure,在这种情况下,您应该使用ttk 模块。见tkdocs.com/tutorial
【解决方案2】:

您需要将指定正确版本的 ComCtl32.dll 的并行清单添加到 Python 解释器。幸运的是,无需更改解释器可执行文件本身。

  • 在包含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

【讨论】:

  • 如果脚本在 PythonWin.exe 下运行,那么清单可能应该是 PythonWin.exe.manifest。
  • 我从 python.exe (ActivePython 3.1) 运行
  • 也许它需要用于 Python dll?我知道清单是改变这一点的方法,所以可能需要一些实验。
  • 感谢您的回答。即使我们使用 py2exe,这也有效。如果我们在 py2exe 创建的 dist 文件夹中添加清单,我们将获得现代外观。
【解决方案3】:

您是否尝试过使用“winxpgui”模块而不是“win32gui”模块?

我不确定是否有“winvistagui”或“win7gui”模块,但“winxpgui”确实存在并且可能有效,因为它包含清单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 2012-05-16
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多