PyQt5+Qt designer实战

PyQt5+Qt designer实战PyQt5 Qtdesigner 制作计算器配置说明 Anaconda4 2 0 64 bit Python3 5 2 首先 在 Qtdesigner 里面设计界面 打开 Qtdesigner 后 设计界面如下所示 保存为 clat ui 然后将其转为 py 文件 之后会生产 clat py 文件 打开后 代码如下 coding utf 8

PyQt5+Qt designer 制作计算器

配置说明:

Anaconda 4.2.0 (64-bit)

Python 3.5.2

首先,在Qt designer里面设计界面:

PyQt5+Qt designer实战

打开 Qt designer后,设计界面如下所示:

PyQt5+Qt designer实战

保存为clat.ui。然后将其转为py文件:

PyQt5+Qt designer实战

之后会生产clat.py文件。

打开后,代码如下:

# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'clat.ui' # # Created by: PyQt5 UI code generator 5.6 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(746, 455) self.widget = QtWidgets.QWidget(Form) self.widget.setGeometry(QtCore.QRect(81, 31, 512, 399)) self.widget.setObjectName("widget") self.gridLayout = QtWidgets.QGridLayout(self.widget) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setObjectName("gridLayout") self.textBrowser = QtWidgets.QTextBrowser(self.widget) self.textBrowser.setObjectName("textBrowser") self.gridLayout.addWidget(self.textBrowser, 0, 0, 2, 4) self.calendarWidget = QtWidgets.QCalendarWidget(self.widget) self.calendarWidget.setObjectName("calendarWidget") self.gridLayout.addWidget(self.calendarWidget, 1, 4, 1, 2) self.lineEdit = QtWidgets.QLineEdit(self.widget) self.lineEdit.setObjectName("lineEdit") self.gridLayout.addWidget(self.lineEdit, 2, 0, 1, 5) self.pushButton_19 = QtWidgets.QPushButton(self.widget) self.pushButton_19.setObjectName("pushButton_19") self.gridLayout.addWidget(self.pushButton_19, 4, 0, 1, 1) self.pushButton_17 = QtWidgets.QPushButton(self.widget) self.pushButton_17.setObjectName("pushButton_17") self.gridLayout.addWidget(self.pushButton_17, 4, 1, 1, 1) self.pushButton_18 = QtWidgets.QPushButton(self.widget) self.pushButton_18.setObjectName("pushButton_18") self.gridLayout.addWidget(self.pushButton_18, 4, 2, 1, 1) self.pushButton_1 = QtWidgets.QPushButton(self.widget) self.pushButton_1.setObjectName("pushButton_1") self.gridLayout.addWidget(self.pushButton_1, 4, 3, 1, 3) self.pushButton_14 = QtWidgets.QPushButton(self.widget) self.pushButton_14.setObjectName("pushButton_14") self.gridLayout.addWidget(self.pushButton_14, 6, 0, 1, 1) self.pushButton_15 = QtWidgets.QPushButton(self.widget) self.pushButton_15.setObjectName("pushButton_15") self.gridLayout.addWidget(self.pushButton_15, 6, 1, 1, 1) self.pushButton_16 = QtWidgets.QPushButton(self.widget) self.pushButton_16.setObjectName("pushButton_16") self.gridLayout.addWidget(self.pushButton_16, 6, 2, 1, 1) self.pushButton_2 = QtWidgets.QPushButton(self.widget) self.pushButton_2.setObjectName("pushButton_2") self.gridLayout.addWidget(self.pushButton_2, 6, 3, 1, 3) self.pushButton_11 = QtWidgets.QPushButton(self.widget) self.pushButton_11.setObjectName("pushButton_11") self.gridLayout.addWidget(self.pushButton_11, 8, 0, 1, 1) self.pushButton_12 = QtWidgets.QPushButton(self.widget) self.pushButton_12.setObjectName("pushButton_12") self.gridLayout.addWidget(self.pushButton_12, 8, 1, 1, 1) self.pushButton_13 = QtWidgets.QPushButton(self.widget) self.pushButton_13.setObjectName("pushButton_13") self.gridLayout.addWidget(self.pushButton_13, 8, 2, 1, 1) self.pushButton_3 = QtWidgets.QPushButton(self.widget) self.pushButton_3.setObjectName("pushButton_3") self.gridLayout.addWidget(self.pushButton_3, 8, 3, 1, 3) self.pushButton_8 = QtWidgets.QPushButton(self.widget) self.pushButton_8.setObjectName("pushButton_8") self.gridLayout.addWidget(self.pushButton_8, 9, 0, 1, 1) self.pushButton_9 = QtWidgets.QPushButton(self.widget) self.pushButton_9.setObjectName("pushButton_9") self.gridLayout.addWidget(self.pushButton_9, 9, 1, 1, 1) self.pushButton_10 = QtWidgets.QPushButton(self.widget) self.pushButton_10.setObjectName("pushButton_10") self.gridLayout.addWidget(self.pushButton_10, 9, 2, 1, 1) self.pushButton_4 = QtWidgets.QPushButton(self.widget) self.pushButton_4.setObjectName("pushButton_4") self.gridLayout.addWidget(self.pushButton_4, 9, 3, 1, 3) self.pushButton_7 = QtWidgets.QPushButton(self.widget) self.pushButton_7.setObjectName("pushButton_7") self.gridLayout.addWidget(self.pushButton_7, 10, 0, 1, 2) self.pushButton_6 = QtWidgets.QPushButton(self.widget) self.pushButton_6.setObjectName("pushButton_6") self.gridLayout.addWidget(self.pushButton_6, 10, 2, 1, 1) self.pushButton_5 = QtWidgets.QPushButton(self.widget) self.pushButton_5.setObjectName("pushButton_5") self.gridLayout.addWidget(self.pushButton_5, 10, 3, 1, 3) self.pushButton = QtWidgets.QPushButton(self.widget) self.pushButton.setObjectName("pushButton") self.gridLayout.addWidget(self.pushButton, 2, 5, 1, 1) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.pushButton_19.setText(_translate("Form", "退出")) self.pushButton_17.setText(_translate("Form", "返回")) self.pushButton_18.setText(_translate("Form", "清除所有")) self.pushButton_1.setText(_translate("Form", "/")) self.pushButton_14.setText(_translate("Form", "7")) self.pushButton_15.setText(_translate("Form", "8")) self.pushButton_16.setText(_translate("Form", "9")) self.pushButton_2.setText(_translate("Form", "*")) self.pushButton_11.setText(_translate("Form", "4")) self.pushButton_12.setText(_translate("Form", "5")) self.pushButton_13.setText(_translate("Form", "6")) self.pushButton_3.setText(_translate("Form", "+")) self.pushButton_8.setText(_translate("Form", "1")) self.pushButton_9.setText(_translate("Form", "2")) self.pushButton_10.setText(_translate("Form", "3")) self.pushButton_4.setText(_translate("Form", "-")) self.pushButton_7.setText(_translate("Form", "0")) self.pushButton_6.setText(_translate("Form", ".")) self.pushButton_5.setText(_translate("Form", "=")) self.pushButton.setText(_translate("Form", "清除缓存")) 

然后,新建Run.py文件,代码如下:

import sys from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow from count.clat import Ui_Form class mwindow(QWidget, Ui_Form): def __init__(self): super(mwindow, self).__init__() self.setupUi(self) def ps_bt(self): self.textBrowser.clear() def ps_bt1(self): self.lineEdit.insert('/') def ps_bt2(self): self.lineEdit.insert('*') def ps_bt3(self): self.lineEdit.insert('+') def ps_bt4(self): self.lineEdit.insert('-') def ps_bt5(self): self.lineEdit.insert('=') self.calculate() def ps_bt6(self): self.lineEdit.insert('.') def ps_bt7(self): self.lineEdit.insert('0') def ps_bt8(self): self.lineEdit.insert('1') def ps_bt9(self): self.lineEdit.insert('2') def ps_bt10(self): self.lineEdit.insert('3') def ps_bt11(self): self.lineEdit.insert('4') def ps_bt12(self): self.lineEdit.insert('5') def ps_bt13(self): self.lineEdit.insert('6') def ps_bt14(self): self.lineEdit.insert('7') def ps_bt15(self): self.lineEdit.insert('8') def ps_bt16(self): self.lineEdit.insert('9') def ps_bt17(self): self.lineEdit.backspace() def ps_bt18(self): self.lineEdit.clear() def ps_bt19(self): self.close() def lineEdit_clear(self): self.lineEdit.clear() def calculate(self): # text = self.lineEdit.text() # self.lineEdit.setText('%s= %.2f' % (text, eval(text))) text = self.lineEdit.text() self.textBrowser.append('%s= %.2f' % (text, eval(text))) self.lineEdit_clear() if __name__ == '__main__': app = QApplication(sys.argv) w = mwindow() w.pushButton.clicked.connect(w.ps_bt) w.pushButton_1.clicked.connect(w.ps_bt1) w.pushButton_2.clicked.connect(w.ps_bt2) w.pushButton_3.clicked.connect(w.ps_bt3) w.pushButton_4.clicked.connect(w.ps_bt4) w.pushButton_5.clicked.connect(w.calculate) w.pushButton_6.clicked.connect(w.ps_bt6) w.pushButton_7.clicked.connect(w.ps_bt7) w.pushButton_8.clicked.connect(w.ps_bt8) w.pushButton_9.clicked.connect(w.ps_bt9) w.pushButton_10.clicked.connect(w.ps_bt10) w.pushButton_11.clicked.connect(w.ps_bt11) w.pushButton_12.clicked.connect(w.ps_bt12) w.pushButton_13.clicked.connect(w.ps_bt13) w.pushButton_14.clicked.connect(w.ps_bt14) w.pushButton_15.clicked.connect(w.ps_bt15) w.pushButton_16.clicked.connect(w.ps_bt16) w.pushButton_17.clicked.connect(w.ps_bt17) w.pushButton_18.clicked.connect(w.ps_bt18) w.pushButton_19.clicked.connect(w.ps_bt19) w.show() sys.exit(app.exec_())

运行Run.py,可在里面进行数值计算:

PyQt5+Qt designer实战

另外,如果想加入界面背景,并且自适应界面的大小,可以在主文件里面这么写:

 def resizeEvent(self, event): palette = QPalette() pix = QPixmap('resources/background.jpg') pix = pix.scaled(self.width(), self.height()) palette.setBrush(QPalette.Background, QBrush(pix)) self.setPalette(palette)

进阶版链接地址:

pyqt5与qtdesigner结合开发_pyqt5qtdesigner,pyqt5qt-Python代码类资源-CSDN下载

我曾经跨过山和大海,也穿过人山人海,我曾经拥有着的一切,转眼都飘散如烟,我曾经失落失望失掉所有方向,直到看见平凡才是唯一的答案。
——韩寒《平凡之路》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178142.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午5:55
下一篇 2026年3月26日 下午5:56


相关推荐

  • UDP攻击实战及其简略防御方法[通俗易懂]

    UDP攻击实战及其简略防御方法[通俗易懂]UDP攻击实战及其简略防御方法

    2022年10月2日
    5
  • 快讯 | 智谱发布最新旗舰模型 GLM-4.7!

    快讯 | 智谱发布最新旗舰模型 GLM-4.7!

    2026年3月12日
    3
  • js对数字数组排序[通俗易懂]

    js对数字数组排序[通俗易懂]js中经常需要用到对数组进行排序的操作,当数组中的元素均为数字时,直接使用sort()进行排序得到的结果可能不是你想要的结果。假如我有数组arrayNums=[15,2,16],直接使用arrayNums.sort()的排序结果将是[15,16,2],这是因为Javascript的sort()函数在默认情况下是按照字符串顺序对值进行排序的。正因如此,sort()方法在对数值排序时会产生…

    2022年5月15日
    46
  • python json.loads 中文_Python 的完美 json loads

    python json.loads 中文_Python 的完美 json loads为了对付表单提交时参数多和json结构复杂的情况,我写了一个名为recursive_json_loads的处理函数来对请求对象递归调用json.loads()以期能够一次性将所有参数转化为更好用的Python类型。后来又发现了web.py的Storage对象,使这个函数越发好用起来。lang:pythonimportsimplejsonasjsondefrecurs…

    2025年6月16日
    7
  • 怎么下载java_怎样下载Java的环境?

    怎么下载java_怎样下载Java的环境?window系统安装java下载JDK在下载页面中你需要选择接受许可,并根据自己的系统选择对应的版本,本文以Window64位系统为例:下载后JDK的安装根据提示进行,还有安装JDK的时候也会安装JRE,一并安装就可以了。安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为C:\ProgramFiles(x86)\Java\jdk1.8.0_91。配置环境变量1.安装完…

    2022年7月9日
    22
  • @param注解的用法解析_getmapping注解用法

    @param注解的用法解析_getmapping注解用法1、概述首先明确这个注解是为SQL语句中参数赋值而服务的。@Param的作用就是给参数命名,比如在mapper里面某方法A(intid),当添加注解后A(@Param(“userId”)intid),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了。将参数值传如SQL语句中,通过#{userId}进行取值给SQL的参数赋值。2、实例:实例一:@Param注解基本类型的参数mapper中的方法:publicUse…

    2025年8月24日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号