这一章中,我们将了解如何使用 PyQt 建立 GUI,它能为你提供更多灵活性,可以对程序的外观有更多控制。
写一个 GUI 程序大体上可以分为两个主要部分。你需要创建用户界面本身 (UI),然后编写代码让 UI 按照你的想法来实现功能。创建 UI 需要在窗口上排布一 些东西,比如按钮、文本框、选择框等。然后你编写代码来响应按钮点击、文本框 输入、选择框中选择某项等动作。
eg:带菜单的完整的温度转换程序
import sys
from PyQt4 import QtCore,QtGui,uic
form_class = uic.loadUiType("tempconv_menu.ui")[0]
class MyWindowClass(QtGui.QMainWindow,form_class):
def __init__(self,parent=None):
QtGui.QMainWindow.__init__(self,parent)
self.setupUi(self)
self.btnCtoF.clicked.connect(self.btn_CtoF_clicked)
self.btnFtoC.clicked.connect(self.btn_FtoC_clicked)
self.actionC_to_F.triggered.connect(self.btn_CtoF_clicked)
self.actionF_to_C.triggered.connect(self.btn_FtoC_clicked)
self.actionExit.triggered.connect(self.menuExit_selected)
def btn_CtoF_clicked(self):
cel = float(self.editCel.text())
fahr = cel*9.0/5+32
self.spinFahr.setValue(int(fahr+0.5))
def btn_FtoC_clicked(self):
fahr = self.spinFahr.value()
cel = (fahr - 32 )*5 /9.0
cel_text = '%.2f'%cel
self.editCel.setText(cel_text)
def menuExit_selected(self):
self.close()
app =QtGui.QApplication(sys.argv)
myWindow = MyWindowClass()
myWindow.show()
app.exec_()