python pyqt4 学习(1)

分手后的思念是犯贱 2022-08-21 11:37 260阅读 0赞

由于用的python版本为2.7,故选用pyqt4

下载地址 点我传送PyQt4最新版本

安装只需一路 Next

本人也刚刚开始接触,还是在用代码编写,没有使用Qt Designer

推荐参考文档:

  1. PyQt4 精彩实例分析26个例子
  2. PyQt4 精彩实例分析教程
  3. PyQt4 零基础学Qt4编程
  4. PyQt4_精彩实例分析(语法高亮带书签)
  5. PyQt4入门指南 PDF中文版
  6. PyQt学习笔记

下面为代码

  1. #coding:utf-8
  2. ''' FuncName: PyQt4_simple.py Desc: GUI for python Date: 2016-04-25 14:30 Author: johnny '''
  3. import sys,os
  4. from PyQt4 import QtGui
  5. from PyQt4 import QtCore
  6. class PyQt_test(QtGui.QMainWindow,QtGui.QWidget):
  7. def __init__(self): # 初始化
  8. QtGui.QWidget.__init__(self) # 建议用super
  9. QtGui.QMainWindow.__init__(self)
  10. self.setWindowTitle('Functional testing tools') # 设置窗口标题
  11. self.setWindowIcon(QtGui.QIcon("head.ico")) # 设置窗口图标,ico格式,路径自己更改吧
  12. self.resize(350, 250) # 设置窗体 宽和高
  13. self.center() # 下面为引用以下函数
  14. self.base_button()
  15. self.shortcut_key()
  16. self.ProgressBar()
  17. self.version()
  18. def center(self): # 使窗口居中
  19. screen = QtGui.QDesktopWidget().screenGeometry() # 计算桌面分辨率
  20. size = self.geometry() # 获得 QWidget 的尺寸
  21. self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2) # 把窗口移动到屏幕中央
  22. def closeEvent(self, event): # 点击关闭弹出提示窗
  23. reply = QtGui.QMessageBox.question(self, 'Message',
  24. "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
  25. if reply == QtGui.QMessageBox.Yes:
  26. event.accept() # 接受及退出
  27. else:
  28. event.ignore() # 反对即保持现状
  29. def base_button(self): # 配置按钮
  30. OpenConfig = QtGui.QPushButton(u'输出网址', self) # 按钮名称
  31. OpenConfig.setGeometry(50, 55, 100, 50) # 按钮位置
  32. self.connect(OpenConfig, QtCore.SIGNAL('clicked()'), self.Open_Config) #按钮触发事件
  33. OpenResult = QtGui.QPushButton(u'输出作者', self)
  34. OpenResult.setGeometry(200, 55, 100, 50)
  35. self.connect(OpenResult, QtCore.SIGNAL('clicked()'), self.Start_Test)
  36. def shortcut_key(self): # 设置快捷键
  37. open_config = QtGui.QAction(u'输出网址',self)
  38. open_config.setShortcut('Ctrl+E') # 快捷键,英文半角状态下使用快捷键
  39. open_config.setStatusTip('Open config.ini') # 显示文字
  40. self.connect(open_config, QtCore.SIGNAL('triggered()'),self.Open_Config) # 触发事件
  41. start_test = QtGui.QAction(u'输出作者',self)
  42. start_test.setShortcut('Ctrl+T') # 快捷键
  43. start_test.setStatusTip('Start application')
  44. self.connect(start_test, QtCore.SIGNAL('triggered()'),self.Start_Test)
  45. exit = QtGui.QAction(u'退出',self)
  46. exit.setShortcut('Ctrl+Q') # 快捷键
  47. exit.setStatusTip('Start application')
  48. self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
  49. menubar = self.menuBar() # 设置下拉菜单
  50. self.file = menubar.addMenu(u'&快捷键查询')
  51. self.file.addAction(open_config) # 添加Action
  52. self.file.addAction(start_test)
  53. self.file.addAction(exit)
  54. def Open_Config( self ): # 按钮操作
  55. print u'更多精彩尽在 http://blog.csdn.net/z_johnny' # 点击按钮输出
  56. def Start_Test( self ): # 按钮操作
  57. print u"Johnny's Lab" # 自己更改按钮功能
  58. def version(self): # 设置标题为版本信息,简单
  59. self.cb = QtGui.QCheckBox(u'显示版本信息', self)
  60. self.cb.setChecked(False) # 复选框默认为空
  61. self.cb.setFocusPolicy(QtCore.Qt.NoFocus)
  62. self.cb.move(240,115)
  63. self.connect(self.cb, QtCore.SIGNAL('stateChanged(int)'),
  64. self.changeTitle)
  65. def changeTitle(self, value): # 点击复选框显示
  66. if self.cb.isChecked():
  67. self.setWindowTitle(u'版本号:V1.0 by Johnny ')
  68. else:
  69. self.setWindowTitle('Functional testing tools')
  70. def ProgressBar(self): # 进度条
  71. self.pbar = QtGui.QProgressBar(self) # 构建 QProgressBar
  72. self.pbar.setGeometry(90, 150, 200, 25)
  73. self.button = QtGui.QPushButton('Start', self)
  74. self.button.setFocusPolicy(QtCore.Qt.NoFocus)
  75. self.button.move(125, 200)
  76. self.connect(self.button, QtCore.SIGNAL('clicked()'),
  77. self.doAction)
  78. self.timer = QtCore.QBasicTimer()
  79. self.step = 0
  80. def timerEvent(self, event): # 加载定时器事件
  81. if self.step >= 100:
  82. self.timer.stop()
  83. return
  84. self.step = self.step + 1
  85. self.pbar.setValue(self.step)
  86. def doAction(self):
  87. if self.timer.isActive():
  88. self.timer.stop()
  89. self.button.setText('Start')
  90. else:
  91. self.timer.start(100, self) # 定时器对象激活进度条
  92. self.button.setText('Stop')
  93. if __name__ == "__main__":
  94. app = QtGui.QApplication(sys.argv)
  95. GUI = PyQt_test() # 实例化
  96. GUI.show()
  97. sys.exit(app.exec_())

发表评论

表情:
评论列表 (有 0 条评论,260人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PyQt4 - (4) 布局管理

    PyQt4中的布局管理 布局是GUI程序开发中非常重要的一个环节, 而布局管理就是要规划如何在窗口中放置需要的部件. PyQt4中就有两种方法来完成布局任务,一个是绝

    相关 pyqt4安装方法

    1.安装python,我使用的是python-2.7.13.msi 。注意:(1.我的python是64位;2.需要将python中的安装路径python.exe路径配置到系统