详解Python Qt的窗体开发的基本操作

作者:大盗梁 时间:2021-03-28 00:58:12 

本文章采用的是Qt4,是python(x,y) 套件中集成的,为啥不集成Qt5呢,懒得装啊:)

正文:

首先看成品:

详解Python Qt的窗体开发的基本操作

这个程序的功能是输入原价和降价的百分比,计算出最后的价格。

设计器部分

然后就是开发阶段了,首先在Qt Designer中建立一个窗体,大概像图片中的样子,然后将控件都拖进去

详解Python Qt的窗体开发的基本操作

其中,“原价是多少啊”,“绿色的标标”这些文字类的控件是QLabel,第一个框框是QTextEdit,第二个标标是QDoubleSpinBox,或者使用QSpinBox都行,两者主要是数字类型的不同,

提交按钮是QPushButton,这里主要是想尝试一下不同的控件,接下来点击在图片框上的QLabel,然后在属性编辑器中将objectName命名为 labelResult ,QTextEdit命名为textPrice,QDoubleSpinBox

命名为dSBPer ,QPushButton命名为btnSub如图:

详解Python Qt的窗体开发的基本操作

详解Python Qt的窗体开发的基本操作

详解Python Qt的窗体开发的基本操作

详解Python Qt的窗体开发的基本操作

这样的命名方式并没有什么特殊含义,只不过能够让鄙人记得更牢一些,以防止程序打到一半来回的看设计器。

这里有个比较麻烦的东西 ------------ 图片框

图片显示本身是QLabel,所以显示图片需要先在设计器中放置一个QLbel控件,改控件在程序中没有改动,所以名字默认就好,接下来还需要在资源管理器中添加资源文件,如图:

详解Python Qt的窗体开发的基本操作

在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

来源:https://www.cnblogs.com/heylk/p/8037124.html

标签:Python,Qt,窗体开发
0
投稿

猜你喜欢

  • 总结Python函数参数的六种类型

    2021-12-21 02:55:56
  • python 实现简单的FTP程序

    2021-03-29 10:33:00
  • Python爬虫获取基金净值信息详情

    2022-04-23 07:53:42
  • python如何每天在指定时间段运行程序及关闭程序

    2021-08-05 05:42:05
  • python计算圆周率pi的方法

    2022-09-24 21:08:14
  • Python小白学习爬虫常用请求报头

    2024-01-02 06:39:19
  • Django中的文件的上传的几种方式

    2023-08-26 22:48:51
  • python selenium在打开的浏览器中动态调整User Agent

    2022-09-26 13:41:59
  • Django基础CBV装饰器和中间件的应用示例

    2023-09-30 06:17:07
  • 利用sql函数生成不重复的订单号的代码

    2012-01-05 19:02:55
  • python3利用tcp实现文件夹远程传输

    2023-09-03 07:44:38
  • 微软Silverlight技术魅力初体验

    2008-11-05 11:16:00
  • Python利用prettytable实现格式化输出内容

    2023-10-17 11:02:32
  • PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)

    2023-11-18 08:17:16
  • python学习之matplotlib绘制散点图实例

    2021-02-22 21:28:22
  • 如何使用Django默认的Auth权限管理系统

    2022-11-29 04:09:40
  • Python中的字符串类型基本知识学习教程

    2023-03-29 01:48:47
  • 空行不空格式排版组织原理

    2010-05-03 14:46:00
  • Python中绑定与未绑定的类方法用法分析

    2021-08-06 22:56:54
  • python数据可视化绘制世界人口地图

    2022-04-27 21:31:31
  • asp之家 网络编程 m.aspxhome.com