Chinaunix首页 | 论坛 | 博客
  • 博客访问: 409816
  • 博文数量: 42
  • 博客积分: 1030
  • 博客等级: 准尉
  • 技术积分: 816
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-06 17:16
文章分类

全部博文(42)

文章存档

2013年(1)

2012年(41)

分类: Python/Ruby

2012-12-05 10:39:36

 是Python创建GUI程序的一个库,它使用Qt作为图形库。相对于其他wxPython、Tkinter等图形库优点是它功能强大可以使用“Designer”或“Qt Creator”很方便的设计UI文件,简化了UI的设计布局等工作。同时Qt图形库是可以跨平台的,在Windows下设计的程序不作修改的就可以运行在Linux下。设计Pyqt程序可以参考Pyqt的Tutorials.

  • 下载安装Pyqt
  • 到Python的安装目录中进入"Lib\site-packages\PyQt4"目录打开"designer"设计界面;
  • 图形界面设计完成之后保存文件为"*.ui"文件;
  • 使用命令行进入Pyqt的安装目录敲以下命令将ui文件转换为py文件
    1. pyuic4.bat test.ui > test.py
  • 编写Python程序(pyqt_test.py)处理GUI的事件和数据等完成软件的功能
    1. #导入自己需要使用的库
    2. import sys
    3. import socket

    4. #导入Pyqt必须的库
    5. from PyQt4 import QtCore, QtGui

    6. #从UI文件中导入需要的界面类(Ui_Form来自于test.py中的定义类的名称也就是Ui中定义的主界面名字)
    7. from test import Ui_Form

    8. #在这里定义实现全局的函数和变量等
    9. s = socket.socket()
    10. s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 1024*128)

    11. #生成自己的程序类
    12. class StartQT4(QtGui.QMainWindow):
    13.     def __init__(self, parent=None):
    14.         QtGui.QWidget.__init__(self, parent)
    15.         self.ui = Ui_Form()
    16.         self.ui.setupUi(self)
    17.         
    18.         #在这里定义QT信号与槽的连接属于__init__函数的范围
    19.         QtCore.QObject.connect(self.ui.connect_button,QtCore.SIGNAL("toggled(bool)"), self.connect_server)

    20.     #在这里定义槽的实现和其他的处理函数(函数注意要和__init__函数的定义对齐)
    21.     def connect_server(self, checked):
    22.         #Read server ipaddress
    23.         host = self.ui.server_addr.text().toAscii()
    24.         port = 8400
    25.         
    26.         #Connect to server
    27.         s.connect((host, port))
    28.         
    29.         #Get server current status
    30.         cur_status = s.recv(1024)
    31.         

    32. #Pyqt应用程序的主函数
    33. if __name__ == "__main__":
    34.     app = QtGui.QApplication(sys.argv)
    35.     myapp = StartQT4()
    36.     myapp.show()
    37.     sys.exit(app.exec_())
  • 程序编写完成之后使用一下命令即可启动Pyqt程序
    1. python pyqt_test.py
  • 使用"py2exe"打包Pyqt程序参考《使用Py2exe打包Python程序》

阅读(11726) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~