这可能吗?我真的想让我的 wxPython 程序(因为它们只在 Windows 上工作)使用 glass 主题。
另外,如果可能的话,有没有一种方法可以使对话框看起来像 Vista 中的那些新对话框,而无需编写大量自定义内容?
这可能吗?我真的想让我的 wxPython 程序(因为它们只在 Windows 上工作)使用 glass 主题。
另外,如果可能的话,有没有一种方法可以使对话框看起来像 Vista 中的那些新对话框,而无需编写大量自定义内容?
有点晚了,不过我还是会回答的...
没有内置的方法可以使用 wxPython 在 Windows 上利用 Aero 主题中的玻璃效果。但是,您可以使用 Win32 API 破解一些东西。您正在寻找的两个功能是DwmIsCompositionEnabled
和DwmExtendFrameIntoClientArea
。只需使用前者检查是否启用了 Aero,然后调用GetHandle()
窗口上的方法并将结果传递给后者以获得玻璃效果。
我从未使用过 wxPython,所以它可能比这更复杂(您可能需要做更多的互操作工作),但这应该可以帮助您入门。如果您需要有关互操作部分的帮助,请查看Python 中的 Win32 编程。
wxPython 是基于 wxWidgets 库的,所以它的能力是基于 wxWidgets 的能力。
我在 wxWidgets 网站上没有看到任何关于“玻璃”界面的具体内容,但我确实看到它支持纹理,并且可以将控件/表单设置为semi-transparent。您应该能够毫不费力地模拟玻璃界面。
wxPython 应该复制操作系统的本机小部件支持的任何主题。现在它看起来像什么?wxPython 演示看起来对吗?清单可能不包括在内……我所知道的是,除非我使用通用小部件,否则我的 wxPython 程序在 Windows 7 上看起来“正确”。