本文章采用的是Qt4,是python(x,y) 套件中集成的,为啥不集成Qt5呢,懒得装啊:)
正文:
首先看成品:
这个程序的功能是输入原价和降价的百分比,计算出最后的价格。
设计器部分
然后就是开发阶段了,首先在Qt Designer中建立一个窗体,大概像图片中的样子,然后将控件都拖进去
其中,“原价是多少啊”,“绿色的标标”这些文字类的控件是QLabel,第一个框框是QTextEdit,第二个标标是QDoubleSpinBox,或者使用QSpinBox都行,两者主要是数字类型的不同,
提交按钮是QPushButton,这里主要是想尝试一下不同的控件,接下来点击在图片框上的QLabel,然后在属性编辑器中将objectName命名为 labelResult ,QTextEdit命名为textPrice,QDoubleSpinBox
命名为dSBPer ,QPushButton命名为btnSub如图:
这样的命名方式并没有什么特殊含义,只不过能够让鄙人记得更牢一些,以防止程序打到一半来回的看设计器。
这里有个比较麻烦的东西 ------------ 图片框
图片显示本身是QLabel,所以显示图片需要先在设计器中放置一个QLbel控件,改控件在程序中没有改动,所以名字默认就好,接下来还需要在资源管理器中添加资源文件,如图:
在Qt设计器中,只需在QLabel控件的pixmap属性中载入即可,支持的文件可访问Qt的文档,我会在文章后面贴出
值得注意的是,资源文件在程序中的使用需要编译为.py文件
编译的代码如下:
pyrcc4 -o a1_rc.py a1.qrc
程序部分
现在就开始程序部分的编辑了
第一步先导入有关Qt的库
import sys from PyQt4 import QtCore,QtGui,uic
然后创建Window初始化
qtCreatorFile = "" #.ui Window File Ui_MainWindow,QtBaseClass = uic.loadUiType(qtCreatorFile)
接下来是基础类的编写
class MyApp(QtGui.QMainWindow,Ui_MainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) Ui_MainWindow.__init__(self) self.setupUi(self) self.btnSub.clicked.connect(self.CalculateTax)
其中"self.btnSub.clicked.connect(self.CalculateTax)"中,btnSub是按钮的名称,clicked.connect是按钮的点击事件要执行的函数的连接,CalculateTax是我自己写的点击的函数,他将会在按钮被点击后调用
if __name__ == "__main__": app = QtGui.QApplication(sys.argv) window = App() window.show() sys.exit(app.exec_())
这一行在主程序中,是程序执行时显示窗体的操作
接下来就开始写CalculateTax(self)函数了,它放在App类中:
def CalculateTax(self): price = int(self.textPrice.toPlainText()) tax = float(self.dSBPer.value()) total_price = price-((tax/100)*price) total_price_string = u"你要记得你要花多少钱,预计的价格很便宜啊:"+str(total_price) +u"块"+"\n"+u"看到没有,还不快买" self.labelResult.setText(total_price_string )
"textPrice.toPlainText()"其中textPrice是控件的名称,toPlainText()是控件的方法,这是获取控件的文本内容,函数具体的详细信息可以在Qt文档中查询,后面控件同理
有一点是在Qt中,如果中文显示乱码,需要将中文转为指定的编码,具体情况需要看程序的编码,在本代码中字符串前加u可直接转码。
# -*- coding: UTF-8 -*- import sys from PyQt4 import QtCore,QtGui,uic qtCreatorFile = "untitled.ui" #Window File Ui_MainWindow,QtBaseClass = uic.loadUiType(qtCreatorFile) class App(QtGui.QMainWindow,Ui_MainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) Ui_MainWindow.__init__(self) self.setupUi(self) self.btnSub.clicked.connect(self.CalculateTax) def CalculateTax(self): price = int(self.textPrice.toPlainText()) tax = float(self.dSBPer.value()) total_price = price-((tax/100)*price) total_price_string = u"你要记得你要花多少钱,预计的价格很便宜啊:"+str(total_price) +u"块"+"\n"+u"看到没有,还不快买" self.labelResult.setText(total_price_string ) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) window = App() window.show() sys.exit(app.exec_())
后面附上Qt官方文档网页:
http://doc.qt.io/qt-5/classes.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 冷漠.2011 《冷漠的爱DSD》[WAV+CUE][1.2G]
- 陈明《流金岁月精逊【中唱】【WAV+CUE】
- 群星《Jazz-Ladies1-2爵士女伶1-2》HQCD/2CD[原抓WAV+CUE]
- 群星《美女私房歌》(黑胶)[WAV分轨]
- 郑源.2009《试音天碟》24BIT-96KHZ[WAV+CUE][1.2G]
- 飞利浦试音碟 《环球群星监听录》SACD香港版[WAV+CUE][1.1G]
- 车载音乐最强享受《车载极致女声精选CD》[WAV分轨][1G]
- 童宇.2024-爱情万年历【TOUCH音乐】【FLAC分轨】
- 黄晓君.2010-丽风金典系列VOL.1.2CD【丽风】【WAV+CUE】
- 黄晓君.2011-丽风金典系列VOL.2【丽风】【WAV+CUE】
- 群星1992《天碟国语金曲精选》香港首版[WAV+CUE][1G]
- 萧敬腾《王妃》台湾首版[WAV分轨][1G]
- 陈奕迅2023《CHIN UP》EAS MUSIC[WAV+CUE][1.2G]
- 黄心懋《曾经有个女孩》滚石首版[WAV+CUE]
- 群星《车宴(紫银合金AQCD)》[原抓WAV+CUE]