python pyqt4 学习(1)
由于用的python版本为2.7,故选用pyqt4
下载地址 点我传送PyQt4最新版本
安装只需一路 Next
本人也刚刚开始接触,还是在用代码编写,没有使用Qt Designer
推荐参考文档:
PyQt4 精彩实例分析26个例子
PyQt4 精彩实例分析教程
PyQt4 零基础学Qt4编程
PyQt4_精彩实例分析(语法高亮带书签)
PyQt4入门指南 PDF中文版
PyQt学习笔记
下面为代码
#coding:utf-8
''' FuncName: PyQt4_simple.py Desc: GUI for python Date: 2016-04-25 14:30 Author: johnny '''
import sys,os
from PyQt4 import QtGui
from PyQt4 import QtCore
class PyQt_test(QtGui.QMainWindow,QtGui.QWidget):
def __init__(self): # 初始化
QtGui.QWidget.__init__(self) # 建议用super
QtGui.QMainWindow.__init__(self)
self.setWindowTitle('Functional testing tools') # 设置窗口标题
self.setWindowIcon(QtGui.QIcon("head.ico")) # 设置窗口图标,ico格式,路径自己更改吧
self.resize(350, 250) # 设置窗体 宽和高
self.center() # 下面为引用以下函数
self.base_button()
self.shortcut_key()
self.ProgressBar()
self.version()
def center(self): # 使窗口居中
screen = QtGui.QDesktopWidget().screenGeometry() # 计算桌面分辨率
size = self.geometry() # 获得 QWidget 的尺寸
self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2) # 把窗口移动到屏幕中央
def closeEvent(self, event): # 点击关闭弹出提示窗
reply = QtGui.QMessageBox.question(self, 'Message',
"Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
event.accept() # 接受及退出
else:
event.ignore() # 反对即保持现状
def base_button(self): # 配置按钮
OpenConfig = QtGui.QPushButton(u'输出网址', self) # 按钮名称
OpenConfig.setGeometry(50, 55, 100, 50) # 按钮位置
self.connect(OpenConfig, QtCore.SIGNAL('clicked()'), self.Open_Config) #按钮触发事件
OpenResult = QtGui.QPushButton(u'输出作者', self)
OpenResult.setGeometry(200, 55, 100, 50)
self.connect(OpenResult, QtCore.SIGNAL('clicked()'), self.Start_Test)
def shortcut_key(self): # 设置快捷键
open_config = QtGui.QAction(u'输出网址',self)
open_config.setShortcut('Ctrl+E') # 快捷键,英文半角状态下使用快捷键
open_config.setStatusTip('Open config.ini') # 显示文字
self.connect(open_config, QtCore.SIGNAL('triggered()'),self.Open_Config) # 触发事件
start_test = QtGui.QAction(u'输出作者',self)
start_test.setShortcut('Ctrl+T') # 快捷键
start_test.setStatusTip('Start application')
self.connect(start_test, QtCore.SIGNAL('triggered()'),self.Start_Test)
exit = QtGui.QAction(u'退出',self)
exit.setShortcut('Ctrl+Q') # 快捷键
exit.setStatusTip('Start application')
self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
menubar = self.menuBar() # 设置下拉菜单
self.file = menubar.addMenu(u'&快捷键查询')
self.file.addAction(open_config) # 添加Action
self.file.addAction(start_test)
self.file.addAction(exit)
def Open_Config( self ): # 按钮操作
print u'更多精彩尽在 http://blog.csdn.net/z_johnny' # 点击按钮输出
def Start_Test( self ): # 按钮操作
print u"Johnny's Lab" # 自己更改按钮功能
def version(self): # 设置标题为版本信息,简单
self.cb = QtGui.QCheckBox(u'显示版本信息', self)
self.cb.setChecked(False) # 复选框默认为空
self.cb.setFocusPolicy(QtCore.Qt.NoFocus)
self.cb.move(240,115)
self.connect(self.cb, QtCore.SIGNAL('stateChanged(int)'),
self.changeTitle)
def changeTitle(self, value): # 点击复选框显示
if self.cb.isChecked():
self.setWindowTitle(u'版本号:V1.0 by Johnny ')
else:
self.setWindowTitle('Functional testing tools')
def ProgressBar(self): # 进度条
self.pbar = QtGui.QProgressBar(self) # 构建 QProgressBar
self.pbar.setGeometry(90, 150, 200, 25)
self.button = QtGui.QPushButton('Start', self)
self.button.setFocusPolicy(QtCore.Qt.NoFocus)
self.button.move(125, 200)
self.connect(self.button, QtCore.SIGNAL('clicked()'),
self.doAction)
self.timer = QtCore.QBasicTimer()
self.step = 0
def timerEvent(self, event): # 加载定时器事件
if self.step >= 100:
self.timer.stop()
return
self.step = self.step + 1
self.pbar.setValue(self.step)
def doAction(self):
if self.timer.isActive():
self.timer.stop()
self.button.setText('Start')
else:
self.timer.start(100, self) # 定时器对象激活进度条
self.button.setText('Stop')
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
GUI = PyQt_test() # 实例化
GUI.show()
sys.exit(app.exec_())
还没有评论,来说两句吧...