PyQt4入门教程2.docx

上传人:b****3 文档编号:1109619 上传时间:2022-10-17 格式:DOCX 页数:11 大小:19.45KB
下载 相关 举报
PyQt4入门教程2.docx_第1页
第1页 / 共11页
PyQt4入门教程2.docx_第2页
第2页 / 共11页
PyQt4入门教程2.docx_第3页
第3页 / 共11页
PyQt4入门教程2.docx_第4页
第4页 / 共11页
PyQt4入门教程2.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

PyQt4入门教程2.docx

《PyQt4入门教程2.docx》由会员分享,可在线阅读,更多相关《PyQt4入门教程2.docx(11页珍藏版)》请在冰豆网上搜索。

PyQt4入门教程2.docx

PyQt4入门教程2

PyQt4入门教程

(2)

注:

文中译者的话将用方括号【】标出。

这一部分我们将学习PyQt中一些基本的函数。

一个简单的例子

这是一个能够显示出一个窗口的简单例子。

目前为止我们已经可以对这个窗口干很多事情了,比如说改变它的尺寸,最大化,最小化……干这些事情本来需要写很多代码,但是PyQt已经帮我们写好啦【开心】,由于干这些事情的代码在绝大多数应用中都会重复使用,所以没有必要一遍一遍地写这些代码。

我们可以感受到PyQt4是一个很高级的工具库,如果我们用一些比较低级的工具库的话,完成下面这些代码干的事情可能需要敲几百行代码!

#-*-coding:

utf-8-*-

"""

Inthisexample,wecreateasimple

windowinPyQt4.

"""

importsys

fromPyQt4importQtGui

 

defmain():

app=QtGui.QApplication(sys.argv)

w=QtGui.QWidget()

w.resize(250,150)

w.move(300,300)

w.setWindowTitle('Simple')

w.show()

sys.exit(app.exec_())

 

if__name__=='__main__':

main()12345678910111213141516171819202122232425261234567891011121314151617181920212223242526

上面这些代码可以在屏幕中显示出一个小窗口,大家试一试。

接下来我们一句一句地讲解这些代码。

importsys

fromPyQt4importQtGui1212

这里我们导入了一些必要的组件,其中基本的GUI部件是包含在QtGui模块中的。

app=QtGui.QApplication(sys.argv)11

每一个PyQt4应用都必须创建一个应用(application)对象,这个应用对象位于QtGui模块中。

其中的sys.argv参数是由命令行参数组成的列表(list)。

Python脚本也可以从shell中运行,这是我们控制脚本启动的一种方式。

【这里暂时不理解也没有关系,影响不大,记住要创建application就行】

w=QtGui.QWidget()11

QtGui.QWidget是PyQt4所有用户接口对象中的基础类库。

我们在这里调用了QtGui.QWidget的默认构造函数,这个构造没有父对象。

我们把没有父对象的部件(widget)叫做窗口(window)。

【这里对于父对象暂时也不需要理解,理解不到也没关系。

这句中我们就是创造了一个没有父对象的部件,也就是创建了一个窗口w。

w.resize(250,150)11

很好理解,resize()方法可以调整部件的大小,我们把它调整成了250px宽,150px高。

w.move(300,300)11

move()方法将我们的部件移动到了屏幕上坐标为x=300,y=300的地方。

【注:

屏幕的坐标是以左上角为原点的,横着是x轴,竖着是y轴。

w.setWindowTitle('Simple')11

这里我们设定了部件(其实是个窗口)的标题,标题将在标题栏中显示。

w.show()11

show()方法使我们创建的部件能够在屏幕上显示出来。

部件先在内存(memory)中被创建,之后再被显示到屏幕上。

sys.exit(app.exec_())11

在显示了窗口之后,我们进入了程序的主循环,并且开始处理时间。

主循环从窗口接收事件并对部件进行处理。

如果我们调用exit()函数或者关闭最主要的部件,主循环将终止。

这里的sys.exit()调用保证程序完全退出。

值得一提的是exec_()中有一个下划线,为什么呢?

因为exec是一个Python关键字,因此加了下划线。

最后,我们运行程序,就会得到下面这个简单的窗口。

应用的图标

应用图标是那个在应用窗口左上角显示的那个东西。

下面这个例子展示了如何在PyQt4中定制应用图标。

我们还会介绍一些新的函数。

#-*-coding:

utf-8-*-

"""

Thisexampleshowsanicon

inthetitlebarofthewindow.

"""

importsys

fromPyQt4importQtGui

 

classExample(QtGui.QWidget):

def__init__(self):

super(Example,self).__init__()

self.initUI()

 

definitUI(self):

self.setGeometry(300,300,250,150)

self.setWindowTitle('Icon')

self.setWindowIcon(QtGui.QIcon('web.png'))

self.show()

 

defmain():

app=QtGui.QApplication(sys.argv)

ex=Example()

sys.exit(app.exec_())

 

if__name__=='__main__':

main()1234567891011121314151617181920212223242526272829303132333435363712345678910111213141516171819202122232425262728293031323334353637

是不是感觉画风突变?

那是因为我们在第一个例子中使用的是过程式编程风格。

Python语言同时支持过程式编程和面向对象编程风格,上面这个例子就是用面向对象的编程风格编写的。

而你需要知道,用PyQt4编程就以为着面向对象编程(OOP)【为什么要用面向对象的编程风格?

务必XX一下。

classExample(QtGui.QWidget):

def__init__(self):

super(Example,self).__init__()

...1234512345

在面向对象的编程中最重要的三个东西是类(classes),数据(data)和方法(methods)。

这里我们创建了一个新的类叫做Example,括号中的QtGui.QWidget表明这个Example类是从QtGui.QWidget类继承来的。

这意味着我们为新类写构造函数时需要调用被继承类的构造函数。

super(Example,self)返回了Example的父对象(即QtGui.QWidget),接着我们调用了父对象的构造函数。

注意__init__是Python中的构造函数。

self.initUI()11

这里我们调用了一个我们自己写的initUI()函数来创建GUI。

self.setGeometry(300,300,250,150)

self.setWindowTitle('Icon')

self.setWindowIcon(QtGui.QIcon('web.png'))123123

由于我们是继承QtGui.QWidget类,我们的新类其实就是一个部件(widget),有widget的所有方法,这三个方法就都出自widget。

我们先来介绍一下setGeometry这个方法,它做了两件事情:

将部件定位并设定了它的大小【其实就是resize和move的混合函数】。

前两个参数是部件相对于父元素的x,y坐标【这里其实是个窗口(window),没有父元素记得吗?

所以是屏幕上的x,y坐标。

】,后两个参数是部件的宽和高。

接下来说一下setWindowIcon这个方法,它设定了应用的图标。

为了做到这一点,我们创建了一个QtGui.QIon对象,创建时的参数就是我们想要的图标的路径。

defmain():

app=QtGui.QApplication(sys.argv)

ex=Example()

sys.exit(app.exec_())

 

if__name__=='__main__':

main()123456789123456789

启动代码放在了main函数中,我们先创建一个应用(application),然后创建我们定义的新类Example的一个实例ex。

【注意if__name__=='__main__'这个Python中惯用的定义入口点的方式。

最后的效果就是这个样子,图标变啦:

显示提示栏

我们可以让鼠标移到部件上时显示提示信息。

#-*-coding:

utf-8-*-

"""

Thisexampleshowsatooltipon

awindowandabutton

"""

importsys

fromPyQt4importQtGui

 

classExample(QtGui.QWidget):

def__init__(self):

super(Example,self).__init__()

self.initUI()

definitUI(self):

QtGui.QToolTip.setFont(QtGui.QFont('SansSerif',10))

self.setToolTip('ThisisaQWidgetwidget')

btn=QtGui.QPushButton('Button',self)

btn.setToolTip('ThisisaQPushButtonwidget')

btn.resize(btn.sizeHint())

btn.move(50,50)

self.setGeometry(300,300,250,150)

self.setWindowTitle('Tooltips')

self.show()

defmain():

app=QtGui.QApplication(sys.argv)

ex=Example()

sys.exit(app.exec_())

 

if__name__=='__main__':

main()123456789101112131415161718192021222324252627282930313233343536373839404142123456789101112131415161718192021222324252627282930313233343536373839404142

在这个例子中,我们使两个部件可以显示提示信息。

QtGui.QToolTip.setFont(QtGui.QFont('SansSerif',10))11

这个方法设置了一个用来显示提示信息的字体,我们使用大小10px的SansSerif字体。

self.setToolTip('ThisisaQWidgetwidget')11

为了创建一个提示框,我们调用setTooltip()这个方法,我们还可以使用html标签【厉害吧】。

btn=QtGui.QPushButton('Button',self)

btn.setToolTip('ThisisaQPushButtonwidget')1212

这里我们创建了一个按钮,并给它加上了提示框(Tooltip)。

btn.resize(btn.sizeHint())

btn.mov

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1