• 使用PyQt(Python+Qt)+动态编译36行代码实现的计算器


    PyQt是基于跨平台的图形界面C++开发工具Qt加Python包装的一个GPL软件(GPL是GNU General Public License的缩写,是GNU通用公共授权非正式的中文翻译),Qt基于Qt Designer提供了图形设计界面,通过绘制的图形界面使用PyUIC可以将图形界面转成Python代码文件(具体步骤请参考《第15.6节 PyQt5安装与配置》),这样图形界面设计和处理逻辑分离,可以快速实现应用。

    本文解释的计算器由Qt Designer完成界面设计,并将鼠标点击事件与槽函数关联以响应界面输入,最后使用Python动态编译的eval函数实现表达式结果的计算,除了图形界面转换的代码外,其他处理代码只有36行,但计算器的功能还比较齐全。详细步骤如下:

    一、设计计算器界面
    在Qt Designer中设计计算器的图形界面,如下:
    在这里插入图片描述
    界面文件保存到Ui_Calculator.ui文件中。

    二、定义按键与响应函数的关联
    在Qt Designer中通过F4进入事件与槽函数的编辑界面,将按键与槽函数建立映射关系,以使得按键后调用对应槽函数进行响应,本次在主程序中设计了三个槽函数,分别为:
    1、CalObjPressed响应所有数字、括号、计算符的鼠标点击;
    2、ClearInput响应Clear按键的鼠标点击;
    3、ExecuteCalculate:响应等号按键的鼠标点击。

    三、将UI转换成Py代码
    调用《第15.6节 PyQt5安装与配置》介绍的PyUIC,将UI图形界面代码转换成py代码(这部分不含在36行代码内)。如图:
    在这里插入图片描述
    转换后的文件为Ui_Calculator.py。

    四、建立主程序calculator.py
    在PyCharm中新建工程calculator,同时新建一个工程名同名的calculator.py作为应用主程序。在主程序中实现如下内容:
    1、导入PyQt相关库和sys库

    import sys
    from PyQt5 import QtWidgets
    from PyQt5.QtWidgets import  QPushButton
    

    2、导入Ui界面生成的py模块

    from ui_Calculator import Ui_CaculatorWin
    

    3、从Ui自动生成类派生出应用程序主窗口类w_Calculator并在构造函数中完成初始化

    class w_Calculator(QtWidgets.QWidget, Ui_CaculatorWin):
        def __init__(self):
            super(w_Calculator, self).__init__()
            self.setupUi(self)
            self.expr = ''
            self.resultfinished = False
    

    注意:上面的构造函数前2行代码是标准代码,是所有Ui类派生类都要有的。后面初始化了两个实例变量,其中expr 保存输入表达式,resultfinished 表示表达式计算完成。

    4、在w_Calculator实习三个槽函数代码
    1>、CalObjPressed
    该函数响应等号按键,当按下等号键时,对显示界面的表达式调用动态编译函数eval进行计算,代码如下:

        def CalObjPressed(self):
            if  self.resultfinished:self.ClearInput()
            pButton = self.sender()
            char = pButton.text()
            self.CalculatorDisplay.insertPlainText(char)
            self.expr += char
    

    2>、ClearInput(self)
    该函数响应界面上的Clear按键,清除输入的表达式,代码如下:

        def ClearInput(self):
            self.CalculatorDisplay.clear()
            self.expr = ''
            self.resultfinished = False
    

    3>ExecuteCalculate
    响应等号按键进行表达式计算,代码如下:

        def ExecuteCalculate(self):
            self.CalculatorDisplay.append("=")
            globalArea = {}
            try: result = eval(self.expr, globalArea)
            except Exception as e:
                self.CalculatorDisplay.append(f"计算结果错误,错误原因:
    {e}")
            else: self.CalculatorDisplay.append(str(result))
            self.resultfinished = True
    

    5、完成主程序的应用代码

    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        # mainwin = MediaPlayerWin()
        # mainwin.show()
        W = w_Calculator()
        W.show()
        sys.exit(app.exec_())
    

    这样一个完整的计算器程序就完成了,真正需要自己完成的代码就36行。

    下面是运行效果截图:
    在这里插入图片描述

    附件1、完整主程序代码

    import sys
    from PyQt5 import QtWidgets
    from PyQt5.QtWidgets import  QPushButton
    from ui_Calculator import Ui_CaculatorWin
    class w_Calculator(QtWidgets.QWidget, Ui_CaculatorWin):
        def __init__(self):
            super(w_Calculator, self).__init__()
            self.setupUi(self)
            self.expr = ''
            self.resultfinished = False
        def CalObjPressed(self):
            if  self.resultfinished:self.ClearInput()
            pButton = self.sender()
            char = pButton.text()
            self.CalculatorDisplay.insertPlainText(char)
            self.expr += char
        def ExecuteCalculate(self):
            self.CalculatorDisplay.append("=")
            globalArea = {}
            try: result = eval(self.expr, globalArea)
            except Exception as e:
                self.CalculatorDisplay.append(f"计算结果错误,错误原因:
    {e}")
            else: self.CalculatorDisplay.append(str(result))
            self.resultfinished = True
        def ClearInput(self):
            self.CalculatorDisplay.clear()
            self.expr = ''
            self.resultfinished = False
    
    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        # mainwin = MediaPlayerWin()
        # mainwin.show()
        W = w_Calculator()
        W.show()
        sys.exit(app.exec_())
    

    2、UI文件ui_Calculator.ui的内容

    <?xml version="1.0" encoding="UTF-8"?>
    <ui version="4.0">
     <class>CaculatorWin</class>
     <widget class="QWidget" name="CaculatorWin">
      <property name="geometry">
       <rect>
        <x>0</x>
        <y>0</y>
        <width>339</width>
        <height>314</height>
       </rect>
      </property>
      <property name="windowTitle">
       <string>计算器</string>
      </property>
      <property name="windowIcon">
       <iconset>
        <normaloff>C:/Users/jwp/资源/cal.jpg</normaloff>C:/Users/jwp/资源/cal.jpg</iconset>
      </property>
      <widget class="QWidget" name="gridLayoutWidget">
       <property name="geometry">
        <rect>
         <x>10</x>
         <y>140</y>
         <width>320</width>
         <height>170</height>
        </rect>
       </property>
       <layout class="QGridLayout" name="gridLayout_2">
        <item row="2" column="3">
         <widget class="QPushButton" name="pushButton_dot">
          <property name="text">
           <string>.</string>
          </property>
         </widget>
        </item>
        <item row="0" column="2">
         <widget class="QPushButton" name="pushButton_Multiply">
          <property name="text">
           <string>*</string>
          </property>
         </widget>
        </item>
        <item row="6" column="0">
         <widget class="QPushButton" name="pushButton0">
          <property name="text">
           <string>0</string>
          </property>
         </widget>
        </item>
        <item row="0" column="3">
         <widget class="QPushButton" name="pushButton_div">
          <property name="text">
           <string>/</string>
          </property>
         </widget>
        </item>
        <item row="6" column="1">
         <widget class="QPushButton" name="pushButton_leftbrackets">
          <property name="text">
           <string>(</string>
          </property>
         </widget>
        </item>
        <item row="3" column="1">
         <widget class="QPushButton" name="pushButton5">
          <property name="text">
           <string>5</string>
          </property>
         </widget>
        </item>
        <item row="3" column="3">
         <widget class="QPushButton" name="pushButton_mod">
          <property name="text">
           <string>%</string>
          </property>
         </widget>
        </item>
        <item row="2" column="2">
         <widget class="QPushButton" name="pushButton3">
          <property name="text">
           <string>3</string>
          </property>
         </widget>
        </item>
        <item row="0" column="0">
         <widget class="QPushButton" name="pushButton_Add">
          <property name="text">
           <string>+</string>
          </property>
         </widget>
        </item>
        <item row="2" column="0">
         <widget class="QPushButton" name="pushButton1">
          <property name="text">
           <string>1</string>
          </property>
         </widget>
        </item>
        <item row="4" column="2">
         <widget class="QPushButton" name="pushButton9">
          <property name="text">
           <string>9</string>
          </property>
         </widget>
        </item>
        <item row="4" column="1">
         <widget class="QPushButton" name="pushButton8">
          <property name="text">
           <string>8</string>
          </property>
         </widget>
        </item>
        <item row="6" column="2">
         <widget class="QPushButton" name="pushButton_rightbrackets">
          <property name="text">
           <string>)</string>
          </property>
         </widget>
        </item>
        <item row="3" column="2">
         <widget class="QPushButton" name="pushButton6">
          <property name="text">
           <string>6</string>
          </property>
         </widget>
        </item>
        <item row="3" column="0">
         <widget class="QPushButton" name="pushButton4">
          <property name="text">
           <string>4</string>
          </property>
         </widget>
        </item>
        <item row="2" column="1">
         <widget class="QPushButton" name="pushButton2">
          <property name="text">
           <string>2</string>
          </property>
         </widget>
        </item>
        <item row="0" column="1">
         <widget class="QPushButton" name="pushButton_Minus">
          <property name="text">
           <string>-</string>
          </property>
         </widget>
        </item>
        <item row="4" column="0">
         <widget class="QPushButton" name="pushButton7">
          <property name="text">
           <string>7</string>
          </property>
         </widget>
        </item>
        <item row="6" column="3">
         <widget class="QPushButton" name="pushButton_Cal">
          <property name="text">
           <string>=</string>
          </property>
         </widget>
        </item>
        <item row="4" column="3">
         <widget class="QPushButton" name="pushButton_Clear">
          <property name="text">
           <string>Clear</string>
          </property>
         </widget>
        </item>
       </layout>
      </widget>
      <widget class="QTextBrowser" name="CalculatorDisplay">
       <property name="geometry">
        <rect>
         <x>10</x>
         <y>10</y>
         <width>321</width>
         <height>121</height>
        </rect>
       </property>
      </widget>
     </widget>
     <resources/>
     <connections>
      <connection>
       <sender>pushButton_Add</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>55</x>
         <y>160</y>
        </hint>
        <hint type="destinationlabel">
         <x>3</x>
         <y>113</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton_Minus</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>115</x>
         <y>159</y>
        </hint>
        <hint type="destinationlabel">
         <x>3</x>
         <y>139</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton_Multiply</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>204</x>
         <y>156</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>128</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton_div</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>277</x>
         <y>155</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>98</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton1</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>72</x>
         <y>189</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>157</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton2</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>137</x>
         <y>187</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>163</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton3</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>222</x>
         <y>184</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>84</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton_dot</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>301</x>
         <y>184</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>57</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton4</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>38</x>
         <y>219</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>40</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton5</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>110</x>
         <y>221</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>29</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton6</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>194</x>
         <y>221</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>22</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton_mod</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>269</x>
         <y>223</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>8</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton7</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>60</x>
         <y>255</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>192</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton8</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>129</x>
         <y>252</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>219</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton9</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>226</x>
         <y>252</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>244</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton0</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>37</x>
         <y>287</y>
        </hint>
        <hint type="destinationlabel">
         <x>29</x>
         <y>313</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton_leftbrackets</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>104</x>
         <y>289</y>
        </hint>
        <hint type="destinationlabel">
         <x>98</x>
         <y>313</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton_rightbrackets</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>CalObjPressed()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>194</x>
         <y>292</y>
        </hint>
        <hint type="destinationlabel">
         <x>190</x>
         <y>313</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton_Cal</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>ExecuteCalculate()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>279</x>
         <y>288</y>
        </hint>
        <hint type="destinationlabel">
         <x>277</x>
         <y>313</y>
        </hint>
       </hints>
      </connection>
      <connection>
       <sender>pushButton_Clear</sender>
       <signal>clicked()</signal>
       <receiver>CaculatorWin</receiver>
       <slot>ClearInput()</slot>
       <hints>
        <hint type="sourcelabel">
         <x>306</x>
         <y>257</y>
        </hint>
        <hint type="destinationlabel">
         <x>336</x>
         <y>304</y>
        </hint>
       </hints>
      </connection>
     </connections>
     <slots>
      <slot>digitPressed()</slot>
      <slot>digitPressed(digit)</slot>
      <slot>CalObjPressed()</slot>
      <slot>ExecuteCalculate()</slot>
      <slot>ClearInput()</slot>
     </slots>
    </ui>
    
    

    附件3、Ui转换的ui_Calculator.py文件内容

    # -*- coding: utf-8 -*-
    
    # Form implementation generated from reading ui file 'ui_Calculator.ui'
    #
    # Created by: PyQt5 UI code generator 5.13.0
    #
    # WARNING! All changes made in this file will be lost!
    
    
    from PyQt5 import QtCore, QtGui, QtWidgets
    
    
    class Ui_CaculatorWin(object):
        def setupUi(self, CaculatorWin):
            CaculatorWin.setObjectName("CaculatorWin")
            CaculatorWin.resize(339, 314)
            icon = QtGui.QIcon()
            icon.addPixmap(QtGui.QPixmap("C:/Users/jwp/资源/cal.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
            CaculatorWin.setWindowIcon(icon)
            self.gridLayoutWidget = QtWidgets.QWidget(CaculatorWin)
            self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 140, 320, 170))
            self.gridLayoutWidget.setObjectName("gridLayoutWidget")
            self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget)
            self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
            self.gridLayout_2.setObjectName("gridLayout_2")
            self.pushButton_dot = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton_dot.setObjectName("pushButton_dot")
            self.gridLayout_2.addWidget(self.pushButton_dot, 2, 3, 1, 1)
            self.pushButton_Multiply = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton_Multiply.setObjectName("pushButton_Multiply")
            self.gridLayout_2.addWidget(self.pushButton_Multiply, 0, 2, 1, 1)
            self.pushButton0 = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton0.setObjectName("pushButton0")
            self.gridLayout_2.addWidget(self.pushButton0, 6, 0, 1, 1)
            self.pushButton_div = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton_div.setObjectName("pushButton_div")
            self.gridLayout_2.addWidget(self.pushButton_div, 0, 3, 1, 1)
            self.pushButton_leftbrackets = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton_leftbrackets.setObjectName("pushButton_leftbrackets")
            self.gridLayout_2.addWidget(self.pushButton_leftbrackets, 6, 1, 1, 1)
            self.pushButton5 = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton5.setObjectName("pushButton5")
            self.gridLayout_2.addWidget(self.pushButton5, 3, 1, 1, 1)
            self.pushButton_mod = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton_mod.setObjectName("pushButton_mod")
            self.gridLayout_2.addWidget(self.pushButton_mod, 3, 3, 1, 1)
            self.pushButton3 = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton3.setObjectName("pushButton3")
            self.gridLayout_2.addWidget(self.pushButton3, 2, 2, 1, 1)
            self.pushButton_Add = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton_Add.setObjectName("pushButton_Add")
            self.gridLayout_2.addWidget(self.pushButton_Add, 0, 0, 1, 1)
            self.pushButton1 = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton1.setObjectName("pushButton1")
            self.gridLayout_2.addWidget(self.pushButton1, 2, 0, 1, 1)
            self.pushButton9 = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton9.setObjectName("pushButton9")
            self.gridLayout_2.addWidget(self.pushButton9, 4, 2, 1, 1)
            self.pushButton8 = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton8.setObjectName("pushButton8")
            self.gridLayout_2.addWidget(self.pushButton8, 4, 1, 1, 1)
            self.pushButton_rightbrackets = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton_rightbrackets.setObjectName("pushButton_rightbrackets")
            self.gridLayout_2.addWidget(self.pushButton_rightbrackets, 6, 2, 1, 1)
            self.pushButton6 = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton6.setObjectName("pushButton6")
            self.gridLayout_2.addWidget(self.pushButton6, 3, 2, 1, 1)
            self.pushButton4 = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton4.setObjectName("pushButton4")
            self.gridLayout_2.addWidget(self.pushButton4, 3, 0, 1, 1)
            self.pushButton2 = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton2.setObjectName("pushButton2")
            self.gridLayout_2.addWidget(self.pushButton2, 2, 1, 1, 1)
            self.pushButton_Minus = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton_Minus.setObjectName("pushButton_Minus")
            self.gridLayout_2.addWidget(self.pushButton_Minus, 0, 1, 1, 1)
            self.pushButton7 = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton7.setObjectName("pushButton7")
            self.gridLayout_2.addWidget(self.pushButton7, 4, 0, 1, 1)
            self.pushButton_Cal = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton_Cal.setObjectName("pushButton_Cal")
            self.gridLayout_2.addWidget(self.pushButton_Cal, 6, 3, 1, 1)
            self.pushButton_Clear = QtWidgets.QPushButton(self.gridLayoutWidget)
            self.pushButton_Clear.setObjectName("pushButton_Clear")
            self.gridLayout_2.addWidget(self.pushButton_Clear, 4, 3, 1, 1)
            self.CalculatorDisplay = QtWidgets.QTextBrowser(CaculatorWin)
            self.CalculatorDisplay.setGeometry(QtCore.QRect(10, 10, 321, 121))
            self.CalculatorDisplay.setObjectName("CalculatorDisplay")
    
            self.retranslateUi(CaculatorWin)
            self.pushButton_Add.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton_Minus.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton_Multiply.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton_div.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton1.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton2.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton3.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton_dot.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton4.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton5.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton6.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton_mod.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton7.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton8.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton9.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton0.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton_leftbrackets.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton_rightbrackets.clicked.connect(CaculatorWin.CalObjPressed)
            self.pushButton_Cal.clicked.connect(CaculatorWin.ExecuteCalculate)
            self.pushButton_Clear.clicked.connect(CaculatorWin.ClearInput)
            QtCore.QMetaObject.connectSlotsByName(CaculatorWin)
    
        def retranslateUi(self, CaculatorWin):
            _translate = QtCore.QCoreApplication.translate
            CaculatorWin.setWindowTitle(_translate("CaculatorWin", "计算器"))
            self.pushButton_dot.setText(_translate("CaculatorWin", "."))
            self.pushButton_Multiply.setText(_translate("CaculatorWin", "*"))
            self.pushButton0.setText(_translate("CaculatorWin", "0"))
            self.pushButton_div.setText(_translate("CaculatorWin", "/"))
            self.pushButton_leftbrackets.setText(_translate("CaculatorWin", "("))
            self.pushButton5.setText(_translate("CaculatorWin", "5"))
            self.pushButton_mod.setText(_translate("CaculatorWin", "%"))
            self.pushButton3.setText(_translate("CaculatorWin", "3"))
            self.pushButton_Add.setText(_translate("CaculatorWin", "+"))
            self.pushButton1.setText(_translate("CaculatorWin", "1"))
            self.pushButton9.setText(_translate("CaculatorWin", "9"))
            self.pushButton8.setText(_translate("CaculatorWin", "8"))
            self.pushButton_rightbrackets.setText(_translate("CaculatorWin", ")"))
            self.pushButton6.setText(_translate("CaculatorWin", "6"))
            self.pushButton4.setText(_translate("CaculatorWin", "4"))
            self.pushButton2.setText(_translate("CaculatorWin", "2"))
            self.pushButton_Minus.setText(_translate("CaculatorWin", "-"))
            self.pushButton7.setText(_translate("CaculatorWin", "7"))
            self.pushButton_Cal.setText(_translate("CaculatorWin", "="))
            self.pushButton_Clear.setText(_translate("CaculatorWin", "Clear"))
    

    博客地址:https://blog.csdn.net/LaoYuanPython

    老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036

  • 相关阅读:
    .NET逻辑分层架构总结
    ASP.NET MVC 4 的JS/CSS打包压缩功能-------过滤文件
    c#实现浏览器端大文件分块上传
    fckeditor如何能实现直接粘贴把图片上传到服务器中?
    web编辑器直接粘贴图片实现
    富文本编辑器直接粘贴图片实现
    百度ueditor编辑器直接粘贴图片实现
    百度编辑器直接粘贴图片实现
    fckeditor直接粘贴图片实现
    wangEditor直接粘贴图片实现
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/11931588.html
Copyright © 2020-2023  润新知