Python PyQt5實現(xiàn)的簡易計算器功能示例
本文實例講述了Python PyQt5實現(xiàn)的簡易計算器功能。分享給大家供大家參考,具體如下:
這里剩下計算函數(shù)(self.calculator
)未實現(xiàn),有興趣的朋友可以實現(xiàn)它
【知識點】
1、利用循環(huán)添加按鈕部件,及給每個按鈕設置信號/槽
2、給按鈕設置固定大?。?code>button.setFixedSize(QtCore.QSize(60,30))
3、取事件的的發(fā)送者(此例為各個按鈕)的文本: self.sender().text()
【效果圖】
【源代碼】
import sys from PyQt5 import QtWidgets,QtCore,QtGui class Example(QtWidgets.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() self.reset() def initUI(self): self.setWindowTitle('簡易計算器') grid = QtWidgets.QGridLayout() self.display = QtWidgets.QLineEdit('0') self.display.setFont(QtGui.QFont("Times", 20)) self.display.setReadOnly(True) self.display.setAlignment(QtCore.Qt.AlignRight) self.display.setMaxLength(15) grid.addWidget(self.display,0,0,1,4) names = ['Clear', 'Back', '', 'Close', '7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', '0', '.', '=', '+'] pos = [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3 ), (4, 0), (4, 1), (4, 2), (4, 3)] c = 0 for name in names: button = QtWidgets.QPushButton(name) button.setFixedSize(QtCore.QSize(60,30)) button.clicked.connect(self.buttonClicked) # 給每個按鈕設置信號/槽 if c == 2: pass #grid.addWidget(QtWidgets.QLabel(''), 0, 2) #替換 第三個按鈕 為 文本標簽! else: grid.addWidget(button, pos[c][0]+1, pos[c][1]) c = c + 1 self.setLayout(grid) def buttonClicked(self): #sender = self.sender(); # 確定信號發(fā)送者 #self.display.setText(sender.text()) text = self.sender().text() if text in '+-*/': self.history.append(self.number) # 數(shù)字入棧 self.history.append(text) # 運算符入棧 self.operator = text # 設置當前運算符 self.number = "" # 數(shù)字清空 self.numberType = "int" return elif text == "=": self.calculate() # 計算 elif text == "Back": pass elif text == "Clear": self.reset() elif text == "Close": self.close() elif text == ".": if self.numberType == "int": self.number += text self.numberType = "float" else: self.number = self.number + text if self.number != "0" else text self.display.setText(self.number) def calculate(self): pass def reset(self): self.number = "0" self.result = 0 self.history = [] self.operator = '' # +,-,*,/ self.numberType = 'int' # int與float兩種,如果輸入了小數(shù)點則為實數(shù) app = QtWidgets.QApplication(sys.argv) ex = Example() ex.show() sys.exit(app.exec_())
PS:這里再為大家推薦幾款計算工具供大家進一步參考借鑒:
在線一元函數(shù)(方程)求解計算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科學計算器在線使用_高級計算器在線計算:
http://tools.jb51.net/jisuanqi/jsqkexue
在線計算器_標準計算器:
http://tools.jb51.net/jisuanqi/jsq
更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學運算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python通過wordcloud庫實現(xiàn)將單詞生成詞云
Python的wordcloud庫是一個用于生成詞云的Python包,它可以將一段文本中出現(xiàn)頻率高的單詞按其出現(xiàn)頻率大小以及顏色深淺排列成一個詞云圖形,從而更好地展示文本中的信息,你可以使用wordcloud庫來生成各種類型的詞云,本文就介紹了如何生成心型詞云2023-06-06python讀取目錄下所有的jpg文件,并顯示第一張圖片的示例
今天小編就為大家分享一篇python讀取目錄下所有的jpg文件,并顯示第一張圖片的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06python利用paramiko實現(xiàn)交換機巡檢的示例
這篇文章主要介紹了python利用paramiko實現(xiàn)交換機巡檢,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-09-09Python標準庫內(nèi)置函數(shù)complex介紹
這篇文章主要介紹了Python標準庫內(nèi)置函數(shù)complex介紹,本文先是講解了complex的作用和使用注意,然后給出了使用示例,需要的朋友可以參考下2014-11-11Python實現(xiàn)數(shù)據(jù)的序列化操作詳解
在日常開發(fā)中,對數(shù)據(jù)進行序列化和反序列化是常見的數(shù)據(jù)操作,Python提供了兩個模塊方便開發(fā)者實現(xiàn)數(shù)據(jù)的序列化操作,即?json?模塊和?pickle?模塊。本文就為大家詳細講解這兩個模塊的使用,需要的可以參考一下2022-07-07Python中列表遍歷使用range和enumerate的區(qū)別講解
這篇文章主要介紹了Python中列表遍歷使用range和enumerate的區(qū)別,在Python編程語言中,遍歷list有range和enumerate方法,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12