Hello World 之python GUI篇

[size=medium] Hello world是几乎每一门语言的开场白,本例用python做一个GUI的example,好啦,不再赘言,直奔主题,其步骤如下:
1. 新建工程: project->new...,命名为HiPython,点ok一个新工程建立。
2. 建对话界面: 在project-viewer下面的Forms选项执行:new Form->选择Dialog->命名HelloPython.ui,此时自动打开QtDesigner,选中对话框,在右侧的属性编辑器中就可以查看/修改对话框的属性。将windowTitle改为"HelloPython",将objectName改为"PythonGUI"”,前者是对话框标题,后者在以后生成代码时有用,不建议使用默认值。
3. 拖动一个Label(在DisplayWidgets分类中)到对话框中,将属性text改为"Hello",objectName改为"labelHello"。
拖动一个lineEdit(在input Widgets分类)到对话框中,绘制一个单行文本框,并在右面属性框中,把objcetName改为textHello。
再拖动两个PushButton(在Buttons分类中)到对话框,分别将属性text改为"你好"和"退出"。将属性objectName分别改为btnHello和btnExit。
4. 处理事件: 在PyQt4下,事件处理方面的术语为“信号”和“槽”,即signal和slot。事件对应信号signal,而事件的处理函数则为slot槽。
PyQt4有一些预定义的slot,我们可以直接用,比如“退出”按钮的slot,其实就是关闭对话框,这个slot已经在PyQt4中有定义了。对于这样的slot,我们不用单独写代码,在QtDesigner中就可以完成。而对于“你好”按钮,我们需要自己写代码。对于这样的slot,我们在QtDesigner中不做任何处理,甚至不做定义。
有两种处理事件的方法,一个是:
那么在这个例子中,在QtDesigner里我们只处理退出按钮的单击事件。
单击“编辑信号/槽”按钮进入信号/槽编辑模式。点中退出按钮并拖动,会出现一个像是电路图中的接地图示一样的东西。
松开鼠标,就会弹出“配置连接”对话框。勾上“显示从QWidget继承的信号和槽”,左侧选择clicked(),右侧选择close(),点确定,就OK了。
如果要继续调整对话框外观,点击“编辑窗口部件”按钮返回窗口编辑模式。
另一种是:
点击窗口右面的(信号/槽编辑器)中的加号(+),就会出现一条没有定义过的事件,此时在发送者选择btnExit(btnExit是刚才定义的exit按钮),信号中选择clicked(),接受者中选择Dialog,槽中选择close(),然后保存后关闭设计器。
5. 生成界面代码:保存之后关闭QtDesigner,会发现Eric4的ProjectViewer的Forms选项卡中已经多出HelloPython.ui了。右击它选择Compile Form,就能生成Ui_HelloPython.py文件,并自动加入到工程中。在Sources选项卡中可以看到。
双击Ui_HelloPython.py可以看它的内容,其实是生成了一个Ui_HelloPython类。
Ui_HelloPython.py是可以单独运行的,在Eric4中直接按F2可以运行,看看初步的效果。发现单击退出按钮果然能直接退出程序。
不建议手动修改Ui_HelloPython.py,因为每次改动界面并生成代码后会将手动进行的修改给覆盖掉。
6. 添加处理代码:鼠标右键HelloPython.ui,选择Generate Dialog Code,设定ClassName,点击右面的New按钮。默认就可以。确定之后。在下面的文本框中,选择btn1下的给第一个on_btnHello_clicked()打上对勾.然后ok.这时在点击Projcet-Viewer下的第一个选项卡Source,就会多出一个HelloPython.py文件.双击打开这个文件。在文件后面就会出现一个刚才生成的btnHello按钮的角本。
def on_btnHello_clicked(self):
"""
Slot documentation goes here.
"""
# TODO: not implemented yet
raise NotImplementedError
把上面的代码段改为:
def on_btnHello_clicked(self):
self.labelHello.setText(u"你好,Python")
self.textHello.setText(u"你好,Python")
此处的u为中支持中文而加入的,然后在源文件顶部加入:
Copy codeimport PyQt4, PyQt4.QtGui, sys
在底部最后面加入
Copy codeif __name__ == "__main__":
app = PyQt4.QtGui.QApplication(sys.argv)
dlg = Dialog()
dlg.show()
sys.exit(app.exec_())
第一个 Python PyQt GUI 的Hello World完成[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值