在Qt中进行Python程序开发
标签:
pythonqtcreator |
分类: 计算机 |
这是一个简单的 GUI 应用,根据输入的价格(price)和税率(tax rate),计算出最终的价格(final price)。
利用QT Designer 工具来做这个界面窗口非常简单:
http://s13/mw690/002inDwizy7hc6Au5B21c&690
打开 QT Designer。在弹出的窗口中,选择 Main Window,这样它会给你一个空白的画板。
http://ww2/mw690/6941baebgw1er4ahrjg9kj21ao0t6tbx.jpg
接下来在左侧选择Text Edit:
http://ww3/mw690/6941baebgw1er4ahs09ngj20sg0hswhb.jpg
将Text
Edit
http://ww2/mw690/6941baebgw1er4ahsdx1ij20sg0hs772.jpg
看见右边我粗略的用红圈框起来的部分了吗?那就是定义这个对象的名字的地方。这个名字将是我们通过 Python 代码调用到这个对象的变量名,所以请尽量取一个有意义的名称。
http://ww4/mw690/6941baebgw1er4ahszx4dj20sg0hs776.jpg
我将它取名为price_box,因为我们会在这里输入价格。然后我们需要给这个输入框添加一个
label,以便让用户更加清楚这个输入框的作用。
http://ww1/mw690/6941baebgw1er4ahtl7wgj20sg0hsdil.jpg
我在上图中圈出了 label。把它拖动到主窗口当中来。
http://ww3/mw690/6941baebgw1er4ahub2yzj20sg0hswha.jpg
现在它被默认称作TextLabel。双击并将其命名为Price。你还可以将这段文字字体加大并且设置为粗体,就像下边看到的这样:
http://ww2/mw690/6941baebgw1er4ahuw2naj20sg0hs773.jpg
对于税率(tax)输入框,我们会使用另外的一个东西。找到spin box:
http://ww4/mw690/6941baebgw1er4ahvhpjwj20sg0hsju3.jpg
左侧用圈框起来的部分就是一个spin
box。它会限定你能输入的值。其实并不是非得要用spin box,这样做只不过是为了更好地展示 QT
Creator 所能提供的各种不同的组件。将spin
box objectName tax_rate。请记住这将会是你在 Python
代码中调用它的时候会使用到的变量名。
http://ww2/mw690/6941baebgw1er4ahw33z2j20sg0hsju6.jpg
我们可以为我们的spin
box
http://ww4/mw690/6941baebgw1er4ahwog7qj20sg0hsdim.jpg
如果你仔细观察上图,你会发现我们也可以设置它的最小值和最大值。不过我并不打算去更改他们。
同样地,我会为它添加一个标签叫做Tax
Rate。然后看看我们接下来会用到的圈起来的Push Button:
http://ww2/mw690/6941baebgw1er4ahxrhgaj20sg0hstbj.jpg
好的,现在选择Push
Button
http://ww2/mw690/6941baebgw1er4ahymyhtj20sg0hs0vl.jpg
这个按钮现在显示的是PushButton,这并不是一个很有意义的名字。到了这一步,你应该知道该怎么更改它了。不过在此之前,我们要把这个按钮的名字(不是显示用的文字列)改为calc_tax_button。
http://ww4/mw690/6941baebgw1er4ahzx9s2j20sg0hs41d.jpg
然后,我们可以修改真正的显示文字列了:
http://ww3/mw690/6941baebgw1er4ai133a0j20sg0hs774.jpg
然后选择另外一个Text
Edit results(下图中没有画出来,但你应该已经知道该如何操作了)。
http://ww1/mw690/6941baebgw1er4ai1guacj20sg0hswha.jpg
如果你觉得需要的话,你可以添加一个大标题。这是一个简单的label
box
http://ww3/mw690/6941baebgw1er4ai2314mj20sg0hsacy.jpg
现在保存你的成果:
http://ww4/mw690/6941baebgw1er4ai2mb6tj20sg0hsgo9.jpg
这个文件在下一部分我们编写代码的时候将会用到,所以最好把它存在一个我们方便访问的地方。文件名就叫mainwindow.ui。
接下来编写Python脚本。可以用QtCreator新建一个Python文件,文件内容如下(注意对于Python程序来说,每行的缩进非常重要):
import sys
from PyQt5 import QtCore, QtGui, QtWidgets, uic
qtCreatorFile = "mainwindow.ui" # Enter file here.
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):
__init__(self): def
.QMainWindow.__init__(self) QtWidgets
Ui_MainWindow.__init__(self)
self.setupUi(self)
self.calc_tax_button.clicked.connect(self.CalculateTax)
CalculateTax(self): def
price = int(self.price_box.toPlainText())
tax = (self.tax_rate.value())
total_price = price + ((tax / 100) * price)
total_price_string = "The total price with tax is: " + str(total_price)
self.results.setText(total_price_string)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
代码输入完成后,将该文件保存在之前的mainwindow.ui所在的文件夹中。文件名自己随便取。
然后用Python调试工具运行该文件即可。我用的是上一篇博文中设置的外部工具。

加载中…