加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

在Qt中进行Python程序开发

(2018-01-07 20:01:48)
标签:

python

qtcreator

分类: 计算机
本文基本全部转载自伯乐在线网,感谢原作者分享。原文网址如下:
http://python.jobbole.com/81276/

正文:

一、前提:
1,安装了Qt。我装的是Qt5.10。
2,安装了Python。我装的是Python3.5。
3,安装了PyQt。我装的是Pyqt for python3.5。

二、程序搭建方法:
我们要做的程序如下所示:

这是一个简单的 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 设置一个默认值。我选择将其设置为 20:

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):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)
        self.calc_tax_button.clicked.connect(self.CalculateTax)
    def CalculateTax(self):
        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调试工具运行该文件即可。我用的是上一篇博文中设置的外部工具。


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有