您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > PyQt4入门指南-PDF中文版
1PyQt4入门指南版本1.0翻译hqwfreefly日期2011-5-5声明:鄙人英文水平有限,若您对文中描述有异议,请以原文为准分享知识传递快乐(LinuxIDC.com)Ubuntu,Fedora,SUSEITLinux21.PyQt4工具包简介1.1关于本指南这是一个入门级的PyQt指南。其目的在于引导读者快速上手PyQt4工具包。该指南在Linux环境下创建并通过测试。关于PyQtPyQt是用来创建GUI应用程序的工具包。它是Python编程语言与已获得成功的Qt库的混合体。其中Qt库是这个星球上最强大的GUI库之一。PyQt的官方网站是它由PhilThompson创建。PyQt的实现被视作Python的一个模块。它由300多个类和接近6000个函数与方法构成。作为一个跨平台的工具包,PyQt可以在所有主流的操作系统上运行(Unix、Windows、Mac)。PyQt有两种许可,开发者可以在GPL和商业许可证之间做出选择。之前,PyQt的GPL许可证只在Unix系统上可用,但在PyQt4之后,其GPL许可证适用于所有支持它的系统。因为PyQt有大量的类,为便于管理,它们被划分到如下的几个模块中。其中QtCore模块包含了核心的非GUI功能函数,用于以下方面:日期、文件和目录、数据结构、数据流、URL、MIME、线程和进程。QtGui模块则包含了绘图组件以及与绘图相关的类,比如按钮、窗口、状态栏、工具栏、滑块、位图、颜色、字体等。QtNetWork模块包含用于网络编程的类,用户可以用这些类实现TCP/IP和UDP的客户端或服务器。并且使用这些类会使网络编程更加容易、轻便。QtXml包含用于处理XML文件的类,该模块提供了SAX和DOMAPI两种XML文件处理方式的实现。QtSvg模块包含了用于显示SVG(可缩放矢量图形,参考)文件内容的类。QtOpenGL模块用于渲染使用OpenGL库创建的3D或2D图形。并且它支持QtGUI库和OpenGL库的无缝结合。QtSql则库提供了用于操作数据库的类。1.2使用PyQt4创建入门程序在本章的PyQt4指南中我们将学习一些基本的功能。我们讲解的速度会很慢,就像是在和一个孩子说话一样。对于一个孩子来说,他迈出的第一步是笨拙迟缓的。同样,对于一个编程新手来说,他接受新事物的过程也会比较的迟缓。但请谨记,没有愚蠢的人,只有懒人和人,并且懒人和人之间可以相互转换。一个简单的示例下面的示例代码非常简单,它只显示一个小窗口。然而,我们可以对窗口进行的操作却有很多,比如我们可以修改它的大小、最大化、最小化等。而这些操作却需要大量的代码,由于这些操作在很多程序中都需要用到,所以前人已经写好了这些操作的代码。我们没有必要一遍一遍的重新编写这些代码,因此这些代码对程序员来说是隐藏的。PyQt是一个高度QtGuiQtCoreQtNetWorkQtSvgQtSqlQtXmlQtOpenGL(LinuxIDC.com)Ubuntu,Fedora,SUSEITLinux3抽象的工具包,因此,如果我们使用较底层的工具包来实现相同的功能,下面的示例代码就会增长很多。#!/usr/bin/python#simple.pyimportsysfromPyQt4importQtGuiapp=QtGui.QApplication(sys.argv)widget=QtGui.QWidget()widget.resize(250,150)widget.setWindowTitle('simple')widget.show()sys.exit(app.exec_())-----------------------------------------------------------------------------------------------------------------importsysfromPyQt4importQtGui这两句用来载入必须的模块。基本的GUI窗口部件在QtGui模块中。app=QtGui.QApplication(sys.argv)每一个PyQt4程序都需要有一个application对象,application类包含在QtGui模块中。sys.argv参数是一个命令行参数列表。Python脚本可以从shell中执行,参数可以让我们选择启动脚本的方式。widget=QtGui.QWidget()QWidget部件是PyQt4中所有用户界面类的父类。这里我们使用没有参数的默认构造函数,它没有继承其它类。我们称没有父类的widget为一个window。widget.resize(250,150)resize()方法可以改变窗口部件的大小,在这里我们将其设置为250像素宽,150像素高。widget.setWindowTitle('simple')这句用来设置窗口部件的标题,该标题将在标题栏中显示。widget.show()show()方法将窗口部件显示在屏幕上。sys.exit(app.exec_())最后我们进入该程序的主循环。事件处理从本行语句开始。主循环接受事件消息并将其分发给程序的各个部件。如果调用exit()或主部件被销毁,主循环就会结束。使用sys.exit()方法退出可以确保程序可以完整的结束,这种情况下系统的环境变量会记录程序是如何退出的。也许你会疑惑,为什么exec_()方法会有一个下划线。这是因为exec是Python的关键字,为避免冲突,PyQt使用exec_()替代。(LinuxIDC.com)Ubuntu,Fedora,SUSEITLinux4截图:simple1.3程序图标程序图标就是一个小图片,通常显示在程序标题栏的左上角。在以下的示例中,我们将学习如何在PyQt中使用程序图标,另外我们还将学习一些新的方法。#!/usr/bin/python#icon.pyimportsysfromPyQt4importQtGuiclassIcon(QtGui.QWidget):def__init__(self,parent=None):QtGui.QWidget.__init__(self,parent)self.setGeometry(300,300,250,150)self.setWindowTitle('Icon')self.setWindowIcon(QtGui.QIcon('icons/web.png'))app=QtGui.QApplication(sys.argv)icon=Icon()icon.show()sys.exit(app.exec_())-----------------------------------------------------------------------------------------------------------------上一个示例采用了面向过程的方法编写。Python语言同时支持面向过程和面向对象两种编程方法。PyQt编程是面向对象的。classIcon(QtGui.QWidget):def__init__(self,parent=None):QtGui.QWidget.__init__(self,parent)面向对象编程中最重要的是类、属性和方法。以上代码中,我们创建了一个名为Icon的新类,该类继承QtGui.QWidget类。因此我们必须调用两个构造函数——Icon的构造函数(LinuxIDC.com)Ubuntu,Fedora,SUSEITLinux5和继承类QtGui.QWidget类的构造函数。self.setGeometry(300,300,250,150)self.setWindowTitle('Icon')self.setWindowIcon(QtGui.QIcon('icons/web.png'))setGeometry()方法完成两个功能——设置窗口在屏幕上的位置和设置窗口本身的大小。它的前两个参数是窗口在屏幕上的x和y坐标。后两个参数是窗口本身的宽和高。setWindowIcon()方法用来设置程序图标,它需要一个QIcon类型的对象作为参数。调用QIcon构造函数时,我们需要提供要显示的图标的路径(相对或绝对路径)。截图:Icon1.4显示提示信息我们可以为任何窗口部件设置一个气球提示。#!/usr/bin/python#tooltip.pyimportsysfromPyQt4importQtGuifromPyQt4importQtCoreclassTooltip(QtGui.QWidget):def__init__(self,parent=None):QtGui.QWidget.__init__(self,parent)self.setGeometry(300,300,250,150)self.setWindowTitle('Tooltip')self.setToolTip('ThisisabQWidget/bwidget')QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish',10))(LinuxIDC.com)Ubuntu,Fedora,SUSEITLinux6app=QtGui.QApplication(sys.argv)tooltip=Tooltip()tooltip.show()sys.exit(app.exec_())-----------------------------------------------------------------------------------------------------------------在本示例中,我们为一个QWidget类型的窗口部件设置工具提示。self.setToolTip('ThisisabQWidget/bwidget')要创建工具提示,则需要调用setToolTip()方法。该方法接受富文本格式的参数。QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish',10))因为默认的QToolTip字体看起来比较糟糕,我们可以通过上面的语句设置想要的字体和字体大小。截图:tooltip关闭窗口一个显而易见的关闭窗口的方式是单击标题栏右上角的X标记。在接下来的示例中,我们将展示如何用代码来关闭程序,并简要介绍Qt的信号和槽机制。下面是QPushButton的构造函数,我们将会在下面的示例中使用它。QPushButton(stringtext,QWidgetparent=None)text表示将显示在按钮上的文本。parent是其对象,用于指定按钮显示在哪个部件中。在我们的示例中,parent为是一个QWidget对象。#!/usr/bin/python#quitbutton.pyimportsysfromPyQt4importQtGui,QtCoreclassQuitButton(QtGui.QWidget):def__init__(self,parent=None):QtGui.QWidget.__init__(self,parent)self.setGeometry(300,300,250,150)self.setWindowTitle('quitbutton')(LinuxIDC.com)Ubuntu,Fedora,SUSEITLinux7quit=QtGui.QPushBut
本文标题:PyQt4入门指南-PDF中文版
链接地址:https://www.777doc.com/doc-4447690 .html