Python 和本机 GUI
我检查了一些其他问题和网站,我得出的结论是,Python 确实允许(如果我错了,请纠正我)使用不同的跨平台工具包(如 Qt、wxWidgets 和其他一些工具包)来制作 GUI 程序。 但如果我不想要跨平台可移植性怎么办?首先,我想使用本机库开发本机应用程序,例如 Mac 的 Cocoa、windows 的 Windows 的本机库、GNOME 的 GTK 和 KDE 应用程序的 Qt,具有不同的代码。不同的代码在这里不是问题。我可以这样做吗?我只是不需要跨平台可移植性,但我需要制作本机应用程序?
专业程序员有什么见解吗?
I checked some other question and websites, and I've come to the conclusion that Python does allow (correct me if I'm wrong) you to make GUI programs using different cross-platform toolkits like Qt, wxWidgets and some others.
But what if I don't want cross-platform portability. Primary, I want to develop native application using native libraries like Cocoa for Mac, native libraries of Windows for window, GTK for GNOME and Qt for KDE apps different with different code. Different code is not an issue here. Can I do this? I just don't need cross-platform portability but I need to make native apps?
Any insights from pro programmers ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不要浪费你的时间。使用 wxPython,它将为您使用本机工具包。
Don't waste your time. Use wxPython, which will use the native toolkit for you.
在 Windows 上,PyWin32 项目绑定到 Win32 API(以及 MFC,如果您已经知道这一点。)
在 OS X 上,您可以使用 PyObjC 编写 Cocoa 程序 - 请参阅他们的 示例
编辑: 请注意,总的来说,我同意@Ignacio 的建议。在大多数情况下,很难证明增加的费用和费用是合理的。维护单独的每个平台代码库的麻烦。 OTOH,我的客户拒绝在 Mac 项目上使用 wx,因为他们说它不会生成看起来像真正的 Mac 应用程序的应用程序。
On Windows, the PyWin32 project has bindings to the Win32 API (and to MFC, if you already know that.)
On OS X, you can use PyObjC to write Cocoa programs -- see their examples
Edit: Note that in general, I agree with @Ignacio's advice here. In most cases, it's hard to justify the added expense & hassle of maintaining separate per-platform code bases. OTOH, I've had clients reject the use of wx on Mac projects because they say it doesn't generate apps that look like real Mac apps.
查看Venster。它是基于 Win32 API 的基于
ctypes
的包装器。不过我必须承认我从未使用过它,只是浏览了一下,并使用了一点它的 WinCE 端口 (VensterCE)。
Check out Venster. It is a
ctypes
-based wrapper over Win32 API.Though I must confess that I never used it, just looked over, and used its WinCE port (VensterCE) a little bit.