- 1、本文档共132页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PyQt4 精彩实例分析ChumpKlutz(朽木)的专栏
实例1 Hello Kitty! 1
实例2 标准对话框的使用 4
实例3 各类位置信息 10
实例4 使用标准输入框 15
实例5 各种消息框的使用 21
实例6 实现QQ抽屉效果 29
实例7 表格的使用 34
实例8 使用进度条 36
实例9 利用Qt Designer设计一个对话框 40
实例10 在程序中使用Ui 47
实例11 动态加载Ui 52
实例12 基本布局管理 53
实例13 多文档 60
实例14 分割窗口 65
实例15 停靠窗口 69
实例16 堆栈窗口 74
实例17 综合布局实例 76
实例18 可扩展对话框 86
实例19 利用QPalette改变控件颜色 90
实例20 窗体的淡入淡出效果 97
实例21 不规则窗体 107
实例22 电子钟 110
实例23 程序启动画面 114
实例24 基本QMainWindow主窗口程序 117
实例25 打印文本 125
实例26 打印图像 128
实例1 Hello Kitty!
分类: -- PyQt4 2010-12-02 17:01 2723人阅读 评论(8) 收藏 举报
本实例实现一个Hello Kitty!例子,简单介绍Qt编程的基本流程,以及Qt程序的编绎运行方式,实例效果图如图所示。
?
这是一个简单的例子,整个对话框只有一个按钮,单击该按钮,对话框关闭,退出程序。
实现代码如下:
?
[python] view plaincopyprint?
from?PyQt4.QtGui?import?*??
from?PyQt4.QtCore?import?*??
import?sys??
??
app=QApplication(sys.argv)??
b=QPushButton(Hello?Kitty!)??
b.show()??
app.connect(b,SIGNAL(clicked()),app,SLOT(quit()))??
app.exec_()??
?
第1行导入PyQt4.QtGui的所有类及模块,包括QApplication,所有Qt图形化应用程序都必须包含此文件,它包含了Qt图形化应用程序的各种资源,基本设置,控制流以及事件处理等。
第5行新创建了一个QApplication对象,每个Qt应用程序都必须有且只有一个QApplication对象,采用sys.argv作为参数,便于程序处理命令行参数。
第6行创建了一个QPushButton对象,并设置它的显示文本为“Hello Kitty!”,由于此处并没有指定按钮的父窗体,因此以自己作为主窗口。
第7行调用show()方法,显示此按钮。控件被创建时,默认是不显示的,必须调用show()函数来显示它。
第8行的connect方法是Qt最重要的特征,即信号与槽的机制。当按钮被按下则触发clicked信号,与之相连的QApplication对象的槽quit()响应按钮单击信号,执行退出应用程序的操作。关于信号与槽机制在本实例最后将进行详细的分析。
最后调用QApplication的exec_()方法,程序进入消息循环,等待可能输入进行响应。Qt完成事件处理及显示的工作,并在应用程序退出时返回exec_()的值。
最后执行程序即可出现上图所示的对话框,一个简单的Hello Kitty!例子完成。
信号与槽机制作为Qt最重要的特性,提供了任意两个Qt对象之间的通信机制。其中,信号会在某个特定情况或动作下被触发,槽是用于接收并处理信号的函数。例如,要将一个窗口中的变化情况通知给另一个窗口,则一个窗口发送信号,另一个窗口的槽接收此信号并进行相应的操作,即可实现两个窗口之间的通信。这比传统的图形化程序采用回调函数的方式实现对象间通信要简单灵活得多。每个Qt对象都包含预定的信号和槽,当一某一特定事件发生时,一个信号被发射,与信号相关联的槽则会响应信号完成相应的处理。
信号与槽机制常用的连接方式为:
connect(Object1,SIGNAL(signal),Object2,SLOT(slot))
signal为对象Object1的信号,slot为对象Object2的槽,Qt的窗口部件都包含若干个预定义的信号和若干个预定义的槽。当一个类被继承时,该类的信号和槽也同时被继承。开始人员也可以根据需要定义自己的信号和槽。
信号与槽机制可以有多种连接方式,下图描述了信号与槽的多种可能连接方式。
1.一个信号可以与另一个信号相连
connect(Object1,SIGNAL(signal1),Object2,SIGNAL(signal1))
即表示Object1的信号1发射可以触发Object2的信号1发射。
2.表示一个信号可以与多个槽相连
connect(Object1,SIGNAL
文档评论(0)