Qt 和 PyQt
2008-09-30 13:08:04 来源:WEB开发网通过创建布局管理器, Logger 类开始工作了。布局管理器在任何 GUI 系统中都是一个很复杂的主题,但是 Qt 的实现使之变得简单。在大多数情况下,您会使用 Qt Designer 创建一般的 GUI 设计,随后可将它用于生成 Python 或 C++ 代码。然后您可以使生成的代码生成子类,以添加功能。
但是在这个示例中,我们选择手工创建布局管理器。窗口构件被置于网格的各个单元中,或者可以跨多个单元放置。在 Tkinter 需要命名参数的地方,PyQt 就不允许它们。这是一个很重要的差异,它经常会使在两种环境中工作的人们无所适从。
所有 Qt 窗口构件都可以和 QString 对象很自然地一起工作,而不能和 Python 字符串或 Unicode 对象一起工作。幸运的是,转换是自动的。如果您在 Qt 方法中使用了字符串或 Unicode 参数,那么它将自动转换成 QString。不能进行反向转换:如果您调用了一个返回 QString 的方法,那么您获得的是 QString。
应用程序中最有趣的部分是我们将 clicked 信号连接到功能的位置。一个按钮连接到了 log_timestamp 方法;另一个连接到了 QWidget 类的 close 方法。
图 1. logger-qt 的屏幕快照
现在我们想将日志记录添加到这个应用程序的标准输出。这十分容易。我们可以使 Logger 类生成子类,或者为了演示,创建简单的独立函数:
清单 4. logger-qt.py PyQt 增强 def logwrite():
print(time.ctime())
if __name__ == "__main__":
app = QApplication(sys.argv)
app.connect(app, SIGNAL('lastWindowClosed()'), app,
SLOT('quit()'))
logger = Logger()
QObject.connect(logger.log, SIGNAL("clicked()"), logwrite)
logger.show()
app.setMainWidget(logger)
app.exec_loop()
- ››QT中获取选中的radioButton的两种方法
- ››Qt HMAC hash 算法
- ››Qt中调用windows系统api在QComboBox中显示系统当前...
- ››Qt之实现360安全卫士主界面(三)
- ››Qt for Symbian S60开发环境全接触
- ››Qt for Symbian应用的开发
- ››Qt for Symbian怎样强制使用横屏或竖屏
- ››Qt与symbian特定格式类对象的转换
- ››Qt for symbian工程文件的一些特异写法
- ››QT for Symbian 环境搭建教材下载
- ››Qt for Symbian 入门之环境搭建
- ››Qt for S60 开发环境全接触
更多精彩
赞助商链接