由于用的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(, ) # 設定窗體 寬和高
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())/, (screen.height()-size.height())/) # 把視窗移動到螢幕中央
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(, , , ) # 按鈕位置
self.connect(OpenConfig, QtCore.SIGNAL('clicked()'), self.Open_Config) #按鈕觸發事件
OpenResult = QtGui.QPushButton(u'輸出作者', self)
OpenResult.setGeometry(, , , )
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(,)
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(, , , )
self.button = QtGui.QPushButton('Start', self)
self.button.setFocusPolicy(QtCore.Qt.NoFocus)
self.button.move(, )
self.connect(self.button, QtCore.SIGNAL('clicked()'),
self.doAction)
self.timer = QtCore.QBasicTimer()
self.step =
def timerEvent(self, event): # 加載定時器事件
if self.step >= :
self.timer.stop()
return
self.step = self.step +
self.pbar.setValue(self.step)
def doAction(self):
if self.timer.isActive():
self.timer.stop()
self.button.setText('Start')
else:
self.timer.start(, self) # 定時器對象激活進度條
self.button.setText('Stop')
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
GUI = PyQt_test() # 執行個體化
GUI.show()
sys.exit(app.exec_())