国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

pyqt 實現(xiàn)計算器

這篇具有很好參考價值的文章主要介紹了pyqt 實現(xiàn)計算器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.由designer設計實現(xiàn)的計算器類

文件名為:untitled.py

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(241, 341)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)
        self.lcdNumber.setGeometry(QtCore.QRect(30, 40, 151, 31))
        font = QtGui.QFont()
        font.setBold(False)
        font.setUnderline(False)
        font.setWeight(50)
        font.setStrikeOut(False)
        self.lcdNumber.setFont(font)
        self.lcdNumber.setDigitCount(10)
        self.lcdNumber.setMode(QtWidgets.QLCDNumber.Dec)
        self.lcdNumber.setObjectName("lcdNumber")
        self.pushButton1 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton1.setGeometry(QtCore.QRect(30, 110, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButton1.setFont(font)
        self.pushButton1.setObjectName("pushButton1")
        self.pushButton2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton2.setGeometry(QtCore.QRect(70, 110, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButton2.setFont(font)
        self.pushButton2.setObjectName("pushButton2")
        self.pushButton3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton3.setGeometry(QtCore.QRect(110, 110, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButton3.setFont(font)
        self.pushButton3.setObjectName("pushButton3")
        self.pushButton4 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton4.setGeometry(QtCore.QRect(30, 140, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButton4.setFont(font)
        self.pushButton4.setObjectName("pushButton4")
        self.pushButton8 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton8.setGeometry(QtCore.QRect(70, 170, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButton8.setFont(font)
        self.pushButton8.setObjectName("pushButton8")
        self.pushButton5 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton5.setGeometry(QtCore.QRect(70, 140, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButton5.setFont(font)
        self.pushButton5.setObjectName("pushButton5")
        self.pushButton6 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton6.setGeometry(QtCore.QRect(110, 140, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButton6.setFont(font)
        self.pushButton6.setObjectName("pushButton6")
        self.pushButton7 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton7.setGeometry(QtCore.QRect(30, 170, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButton7.setFont(font)
        self.pushButton7.setObjectName("pushButton7")
        self.pushButton9 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton9.setGeometry(QtCore.QRect(110, 170, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButton9.setFont(font)
        self.pushButton9.setObjectName("pushButton9")
        self.pushButtonJiafa = QtWidgets.QPushButton(self.centralwidget)
        self.pushButtonJiafa.setGeometry(QtCore.QRect(150, 110, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButtonJiafa.setFont(font)
        self.pushButtonJiafa.setObjectName("pushButtonJiafa")
        self.pushButtonJianf = QtWidgets.QPushButton(self.centralwidget)
        self.pushButtonJianf.setGeometry(QtCore.QRect(150, 140, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButtonJianf.setFont(font)
        self.pushButtonJianf.setObjectName("pushButtonJianf")
        self.pushButtonChuaf = QtWidgets.QPushButton(self.centralwidget)
        self.pushButtonChuaf.setGeometry(QtCore.QRect(150, 200, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButtonChuaf.setFont(font)
        self.pushButtonChuaf.setObjectName("pushButtonChuaf")
        self.pushButtonX = QtWidgets.QPushButton(self.centralwidget)
        self.pushButtonX.setGeometry(QtCore.QRect(150, 170, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButtonX.setFont(font)
        self.pushButtonX.setObjectName("pushButtonX")
        self.pushButtonAnswer = QtWidgets.QPushButton(self.centralwidget)
        self.pushButtonAnswer.setGeometry(QtCore.QRect(110, 200, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButtonAnswer.setFont(font)
        self.pushButtonAnswer.setObjectName("pushButtonAnswer")
        self.pushButton0 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton0.setGeometry(QtCore.QRect(70, 200, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButton0.setFont(font)
        self.pushButton0.setObjectName("pushButton0")
        self.pushButtonClear = QtWidgets.QPushButton(self.centralwidget)
        self.pushButtonClear.setGeometry(QtCore.QRect(30, 200, 31, 21))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(False)
        font.setWeight(75)
        self.pushButtonClear.setFont(font)
        self.pushButtonClear.setObjectName("pushButtonClear")
        self.line = QtWidgets.QFrame(self.centralwidget)
        self.line.setGeometry(QtCore.QRect(20, 240, 171, 16))
        self.line.setFrameShape(QtWidgets.QFrame.HLine)
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setObjectName("line")
        self.line_2 = QtWidgets.QFrame(self.centralwidget)
        self.line_2.setGeometry(QtCore.QRect(20, 20, 171, 16))
        self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        self.line_3 = QtWidgets.QFrame(self.centralwidget)
        self.line_3.setGeometry(QtCore.QRect(10, 30, 20, 221))
        self.line_3.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_3.setObjectName("line_3")
        self.line_4 = QtWidgets.QFrame(self.centralwidget)
        self.line_4.setGeometry(QtCore.QRect(180, 30, 20, 221))
        self.line_4.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_4.setObjectName("line_4")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 241, 22))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton1.setText(_translate("MainWindow", "1"))
        self.pushButton2.setText(_translate("MainWindow", "2"))
        self.pushButton3.setText(_translate("MainWindow", "3"))
        self.pushButton4.setText(_translate("MainWindow", "4"))
        self.pushButton8.setText(_translate("MainWindow", "8"))
        self.pushButton5.setText(_translate("MainWindow", "5"))
        self.pushButton6.setText(_translate("MainWindow", "6"))
        self.pushButton7.setText(_translate("MainWindow", "7"))
        self.pushButton9.setText(_translate("MainWindow", "9"))
        self.pushButtonJiafa.setText(_translate("MainWindow", "+"))
        self.pushButtonJianf.setText(_translate("MainWindow", "-"))
        self.pushButtonChuaf.setText(_translate("MainWindow", "/"))
        self.pushButtonX.setText(_translate("MainWindow", "x"))
        self.pushButtonAnswer.setText(_translate("MainWindow", "="))
        self.pushButton0.setText(_translate("MainWindow", "0"))
        self.pushButtonClear.setText(_translate("MainWindow", "c"))

2.實現(xiàn)計算器類的實例化,窗口展示并添加邏輯功能

import sys
from untitled import Ui_MainWindow #引入在designer里編輯的類
from PyQt5.QtCore import *         #包含了包的核心的非gui功能
from PyQt5.QtGui import *

from PyQt5.QtWidgets import *      #包含了ui元素組件

#實體化designer里編輯的類,然后在繼承
class calculator(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.num_cal = 0
        self.setupUi(self)
        self.num1 = 0
        self.num2 = 0

    #觸發(fā)器的固定格式
    @pyqtSlot()
    def on_pushButton1_clicked(self):
        self.lcdNumber.display(int(self.lcdNumber.value()*10+1))
        # print(self.lcdNumber.value())
    @pyqtSlot()
    def on_pushButton2_clicked(self):
        self.lcdNumber.display(int(self.lcdNumber.value()*10+2))
    @pyqtSlot()
    def on_pushButton3_clicked(self):
        self.lcdNumber.display(int(self.lcdNumber.value()*10+3))
    @pyqtSlot()
    def on_pushButton4_clicked(self):
        self.lcdNumber.display(int(self.lcdNumber.value()*10+4))
    @pyqtSlot()
    def on_pushButton5_clicked(self):
        self.lcdNumber.display(int(self.lcdNumber.value()*10+5))
    @pyqtSlot()
    def on_pushButton6_clicked(self):
        self.lcdNumber.display(int(self.lcdNumber.value()*10+6))
    @pyqtSlot()
    def on_pushButton7_clicked(self):
        self.lcdNumber.display(int(self.lcdNumber.value()*10+7))
    @pyqtSlot()
    def on_pushButton8_clicked(self):
        self.lcdNumber.display(int(self.lcdNumber.value()*10+8))
    @pyqtSlot()
    def on_pushButton9_clicked(self):
        self.lcdNumber.display(int(self.lcdNumber.value()*10+9))
    @pyqtSlot()
    def on_pushButton0_clicked(self):
        self.lcdNumber.display(int(self.lcdNumber.value()*10+0))


    @pyqtSlot()
    def on_pushButtonJiafa_clicked(self):
        if(self.num_cal == 0):
            self.num1 = self.lcdNumber.value()
            # print(num1)
        # else:
        #     self.num2 = self.lcdNumber.value()
            # print(num2)
        self.num_cal = '+'
        print(self.num_cal)
        self.lcdNumber.display(0)


    @pyqtSlot()
    def on_pushButtonJianf_clicked(self):
        self.num1 = self.lcdNumber.value()
        self.num_cal = '-'

        self.lcdNumber.display(0)
    @pyqtSlot()
    def on_pushButtonX_clicked(self):
        self.num1 = self.lcdNumber.value()
        self.num_cal = '*'
        self.lcdNumber.display(0)
    @pyqtSlot()
    def on_pushButtonChuaf_clicked(self):
        self.num1 = self.lcdNumber.value()
        self.num_cal = '/'
        self.lcdNumber.display(0)

    @pyqtSlot()
    def on_pushButtonClear_clicked(self):
        self.lcdNumber.display(0)

    @pyqtSlot()
    def on_pushButtonAnswer_clicked(self):
        self.num2 = self.lcdNumber.value()
        if self.num_cal == '+':
            ans = self.num1 + self.num2
            print(ans)
            print(self.num2)
            self.lcdNumber.display(ans)
        elif self.num_cal == '-':
            ans = self.num1 - self.num2
            print(ans)
            print(self.num2)
            self.lcdNumber.display(ans)
        elif self.num_cal == '*':
            ans = self.num1 * self.num2
            print(ans)
            print(self.num2)
            self.lcdNumber.display(ans)
        elif self.num_cal == '/':
            ans = self.num1 / self.num2
            print(ans)
            print(self.num2)
            self.lcdNumber.display(ans)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = calculator()
    ui.show()
    sys.exit(app.exec_())

3.效果展示

pyqt 實現(xiàn)計算器,Python,pyqt

4.總結:

QApplication:

QApplication 類管理圖形用戶界面應用程序的控制流和主要設置。 可以說 QApplication是Qt的整個后臺管理的命脈

app = QApplication(sys.argv)這句作用用來初始化窗口系統(tǒng)?

app.exec():

app.exec_()的作用是運行主循環(huán),必須調用此函數(shù)才能開始事件處理,調用該方法進入程序的主循環(huán)直到調用exit()結束。主事件循環(huán)從窗口系統(tǒng)接收事件,并將其分派給應用程序小部件。如果沒有該方法,那么在運行的時候還沒有進入程序的主循環(huán)就直接結束了,所以運行的時候窗口會閃退。
app.exec_()在退出時會返回狀態(tài)代碼

sys.exit(n):?

不用sys.exit(app.exec_()),只使用app.exec_(),程序也可以正常運行,但是關閉窗口后進程卻不會退出。

sys.exit(n)的作用是退出應用程序并返回n到父進程。

?參考文章:


原文鏈接:https://blog.csdn.net/cuicui_ruirui/article/details/102873528文章來源地址http://www.zghlxwxcb.cn/news/detail-559264.html

到了這里,關于pyqt 實現(xiàn)計算器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Python綜合案例—利用tkinter實現(xiàn)計算器的程序

    Python綜合案例—利用tkinter實現(xiàn)計算器的程序

    目錄 一、導入 tkinter 庫 定義全局變量 二、定義回調函數(shù) 三、創(chuàng)建窗口對象 四、創(chuàng)建標簽控件 五、創(chuàng)建數(shù)字按鈕 六、創(chuàng)建加、減、乘、除和等于按鈕 七、創(chuàng)建清空按鈕 八、總結 ????????用Python實現(xiàn)計算器可以讓我們更好地理解面向對象編程、GUI 編程和事件驅動編程等

    2024年02月04日
    瀏覽(51)
  • python GUI編程--實現(xiàn)計算器和圖書管理系統(tǒng)注冊和登錄的可視化操作

    python GUI編程--實現(xiàn)計算器和圖書管理系統(tǒng)注冊和登錄的可視化操作

    1.簡易計算器:編寫程序,實現(xiàn)兩個數(shù)的“加減乘除”,界面如圖所示 ?2.利用tkinter設計一個登錄界面,并實現(xiàn)各個命令按鈕的功能: 3.利用tkinter設計一個下面的界面, 該界面的功能是:當單擊“insert point”按鈕時,第一個文本框的內(nèi)容復制一份顯示在第二個文本框內(nèi),當單

    2024年02月10日
    瀏覽(14)
  • 用python做計算器

    用python做計算器

    朋友們大家好,今天的內(nèi)容是:用跑python做一個簡易計算器,大家先來看一下效果: ?可以看到,程序實現(xiàn)了加減乘除的功能,也可以求出余數(shù)。 這個程序要怎么實現(xiàn)呢,首先,我們需要導入tkinter模塊 再來創(chuàng)造一個tkinter的窗口 再來實現(xiàn)我們的界面布局 再來編寫現(xiàn)顯示版的

    2024年02月11日
    瀏覽(16)
  • Java 實現(xiàn)計算器

    Java 實現(xiàn)計算器

    *使用Java語言編寫一個能實現(xiàn)“加、減、乘、除”四則運算的計算器程序。* 要求: (1)在程序中要體現(xiàn)面向對象編程語言的三大特征:封裝、繼承和多態(tài)。 (2)該程序要易于擴展和復用。以后可以方便地增加新的運算;程序的業(yè)務邏輯與界面部分要實現(xiàn)分離,便于業(yè)務邏

    2024年02月12日
    瀏覽(21)
  • Android計算器實現(xiàn)

    Android計算器實現(xiàn)

    這個項目是一個簡單的計算器應用,它可以執(zhí)行加、減、乘、除四種基本運算等計算器的基本功能。我們將使用Android Studio作為開發(fā)工具。 1. 在Android Studio中創(chuàng)建新的Android項目。 2. 在布局文件(`activity_main.xml`)中,我們將添加一個按鈕和一個用于顯示結果的文本視圖。 3. 在

    2024年02月07日
    瀏覽(27)
  • 前端實現(xiàn)科學計算器

    前端實現(xiàn)科學計算器

    這個作業(yè)屬于哪個課程 https://bbs.csdn.net/forums/ssynkqtd-05 這個作業(yè)要求在哪里 https://bbs.csdn.net/topics/617294583 這個作業(yè)的目標 完成一個具有可視化界面的計算器 其他參考文獻 無 源代碼鏈接 PSP Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘) Planning 計劃 60 40 ? Est

    2024年02月07日
    瀏覽(25)
  • 實現(xiàn)復數(shù)計算器

    實現(xiàn)復數(shù)計算器

    ????????本論文描述了一個復數(shù)計算器的設計和實現(xiàn),旨在擴展傳統(tǒng)計算器的功能,以支持復數(shù)的加法、減法、乘法和除法。通過使用Java編程語言和Swing圖形用戶界面庫,我們創(chuàng)建了一個直觀、易于使用的界面,允許用戶輸入復數(shù),并執(zhí)行基本的算術運算。 ????????計

    2024年02月02日
    瀏覽(24)
  • 用python制作一個簡易計算器

    這是一個用Python制作簡單計算器的教程。你可以根據(jù)需要進行更多的改進,例如添加其他運算符或功能。 首先,我們需要創(chuàng)建一個簡單的用戶界面,用于顯示計算器的按鍵和結果。在Python中,我們可以使用 tkinter 庫來創(chuàng)建圖形用戶界面。創(chuàng)建一個新的Python文件,并將其命名為

    2024年02月11日
    瀏覽(22)
  • verilog實現(xiàn)計算器設計

    verilog實現(xiàn)計算器設計

    該實驗為用verilog編寫的一個運算系統(tǒng),其功能是實現(xiàn)4位整數(shù)的加、減、乘、除運算。運算時通過矩陣鍵盤輸入運算類型和運算所需要的數(shù)據(jù),然后通過內(nèi)部電路處理,將計算的結果送于數(shù)碼管或LCD1602顯示。 工程截圖如下: 本設計分為兩個子模塊,按鍵輸入和數(shù)碼管輸出。

    2024年01月16日
    瀏覽(19)
  • Qt實現(xiàn)簡單計算器

    Qt實現(xiàn)簡單計算器

    三級項目想用Qt做界面。 為了熟悉一下Qt操作,歷時8h做了個計算器。 沒用到數(shù)據(jù)庫,布的控件也比較簡單。 所以calculator.pro和widget.ui就不放了(太長了占地方) 文件壓縮包放在下一篇了,需要自取。 自學時間較短,有很多不足歡迎指正。 ?:del按鍵上的圖片用的是絕對路

    2024年02月11日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包