扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Boudewijn Rempt、David Mertz 来源:code173.com 2007年9月15日
关键字: 软件
用于 Python 的其它 GUI 绑定
PyQt 在给定实例中可能不是很有用,可能是许可证状态问题,也可能是平台可用性问题(或者,可能因为再分发很困难,例如大小很大)。由于这个原因(也为了比较),我们想指出一些用于 Python 的其它流行 GUI 工具箱。
从其它语言使用 Qt
如同 Python,从大量其它编程语言使用 Qt 工具箱是可能的。如果可以自由选择,我们会首选 Python,而不是其它语言。诸如公司政策以及与其它代码库连接之类的外部约束可以决定编程语言的选择。Qt 的原始语言是 C++,但也有用于 C、Java、Perl 和 Ruby 的绑定。就与 Python 示例的比较而言,让我们讨论一下用 Ruby 和 Java 写着玩玩的应用程序。
Ruby/Qt 在用法上十分类似于 PyQt。这两种语言具有相似的动态性和简明性,所以除了拼写上的差别外,其代码很类似:
#!/usr/local/bin/ruby require 'qt2' include Qt2 a = QApplication.new([$0] + ARGV) hello = QPushButton.new('Hello world!') hello.resize(100, 30) a.connect( hello, QSIGNAL('clicked()'), a, QSLOT('quit()')) a.setMainWidget(hello) hello.show a.exec |
Java 总是比脚本编制语言要冗长一点,但是基本部分都相同。一个同等功能的最小 qtjava 应用程序类似于:
清单 7. HelloWorld.java Qt2 应用程序
import org.kde.qt.*; public class HelloWorld { public static void main(String[] args) { QApplication myapp = new QApplication(args); QPushButton hello = new QPushButton("Hello World", null); hello.resize(100,30); myapp.connect(hello, SIGNAL("clicked"), this, SLOT("quit()")); myapp.setMainWidget(hello); hello.show(); myapp.exec(); return; } static { System.loadLibrary("qtjava"); try { Class c = Class.forName("org.kde.qt.qtjava"); } catch (Exception e) { System.out.println("Can't load qtjava class"); } } } |
PyQt 是一个吸引人和快速的接口,它将 Qt 工具箱和 Python 编程语言集成在一起。除了该工具箱提供的种类繁多的窗口构件外,Qt 所用的信号/插槽编程风格在生产能力和可维护性方面都要优于大多数其它 GUI 工具箱所用的回调风格。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者