国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python PyQt5實(shí)現(xiàn)的簡易計算器功能示例

2020-02-16 02:08:16
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python PyQt5實(shí)現(xiàn)的簡易計算器功能。分享給大家供大家參考,具體如下:

這里剩下計算函數(shù)(self.calculator)未實(shí)現(xiàn),有興趣的朋友可以實(shí)現(xiàn)它

【知識點(diǎn)】

1、利用循環(huán)添加按鈕部件,及給每個按鈕設(shè)置信號/槽
2、給按鈕設(shè)置固定大小:button.setFixedSize(QtCore.QSize(60,30))
3、取事件的的發(fā)送者(此例為各個按鈕)的文本: self.sender().text()

【效果圖】

【源代碼】

import sysfrom PyQt5 import QtWidgets,QtCore,QtGuiclass 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) # 給每個按鈕設(shè)置信號/槽   if c == 2:    pass    #grid.addWidget(QtWidgets.QLabel(''), 0, 2) #替換 第三個按鈕 為 文本標(biāo)簽!   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) # 運(yùn)算符入棧   self.operator = text # 設(shè)置當(dāng)前運(yùn)算符   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ù)點(diǎn)則為實(shí)數(shù)app = QtWidgets.QApplication(sys.argv)ex = Example()ex.show()sys.exit(app.exec_())

PS:這里再為大家推薦幾款計算工具供大家進(jìn)一步參考借鑒:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 将乐县| 庆元县| 古交市| 溧阳市| 乌兰浩特市| 永安市| 大连市| 肥城市| 和平县| 台中县| 同心县| 集安市| 依安县| 赤城县| 凤山市| 石台县| 历史| 临武县| 邯郸市| 大港区| 梧州市| 长白| 昌乐县| 浦县| 罗田县| 屏东县| 江川县| 巴中市| 西林县| 玉山县| 桐柏县| 含山县| 和顺县| 民和| 和平区| 阿坝县| 信阳市| 梧州市| 东阳市| 静安区| 霸州市|