黑马程序员技术交流社区

标题: PyQt——结合Python与Qt的GUI编程 [打印本页]

作者: 易大帅    时间: 2017-3-21 07:30
标题: PyQt——结合Python与Qt的GUI编程
今天易哥和大家一起学习常用工具和类库
PyQt——结合Python与Qt的GUI编程(qq_25600055)                       
                                                       

http://www.eefocus.com/nightseas/blog/15-05/312675_3e518.html

PyQt是Python下的另一套图形界面接口库,顾名思义就是在Python中调用Qt图形库和组件。使用PyQt的优点在于可以使用Qt成熟的IDE(如Qt Creator)进行图形界面设计,并自动生成可执行的Python代码。


1.1.PyQt的安装和使用

PyQt可以通过apt-get命令安装,其对应Python 2.x 和Python 3.x的包名称不同。

安装Python 2.x下的PyQt:

$ sudo apt-get install python-pyqt4 pyqt4-dev-tools


安装Python 3.x下的PyQt:

$ sudo apt-get install python3-pyqt4 pyqt4-dev-tools


获取PyQt的文档和范例程序(非必须):

$ sudo apt-get install python-qt4-doc


获取到的范例程序保存在/usr/share/doc/python-qt4-doc/examples目录下找到。

2D绘图


对话框演示


FTP客户端(网络编程)演示


OpenGL 3D绘图



下面我们通过一段代码演示PyQt的使用。新建Python文件,命名为hello_pyqt.py,代码内容如下:

import sys

from PyQt4 import QtCore, QtGui


class HelloPyQt(QtGui.QWidget):

    def __init__(self, parent = None):

        super(HelloPyQt, self).__init__(parent)

        self.setWindowTitle("PyQt Test")

      

        self.textHello = QtGui.QTextEdit("This is a test program written in python with PyQt lib!")

        self.btnPress = QtGui.QPushButton("Press me!")

      

        layout = QtGui.QVBoxLayout()

        layout.addWidget(self.textHello)

        layout.addWidget(self.btnPress)   

        self.setLayout(layout)


        self.btnPress.clicked.connect(self.btnPress_Clicked)

      

    def btnPress_Clicked(self):

        self.textHello.setText("Hello PyQt!\nThe button has been pressed.")


if __name__=='__main__':

    app = QtGui.QApplication(sys.argv)

    mainWindow = HelloPyQt()

    mainWindow.show()

    sys.exit(app.exec_())


在本例中,所有的PyQt控件都封装在HelloPyQt类中。首先添加了一个QTextEdit 控件textHello和QPushButton控件btnPress,然后通过self.btnPress.clicked.connect()语句将btnPress按钮的clicked信号连接至btnPress_Clicked()函数。

如此当按钮被按下时,会触发clicked事件,进而调用btnPress_Clicked()函数。该函数的功能就是改变textHello中的文本。

[url=][/url]


作者: luguojiejie    时间: 2017-3-21 09:35
这都是楼主自己写的么

作者: 易大帅    时间: 2017-3-22 23:48
luguojiejie 发表于 2017-3-21 09:35
这都是楼主自己写的么

没有有些是摘抄的作者我也标记了……反正一起学习……

作者: Hango    时间: 2017-4-10 07:04
继续自己家时间的就觉得好好的好

作者: 阿斯顿克星    时间: 2017-8-17 01:02
有没有pyqt比较详细的教程啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2