PyQt5 簡易計算器

2022-03-15 20:57:22 字數 3693 閱讀 5760

剩下計算函式(self.calculator)未實現,有興趣的朋友可以實現它

【知識點】

1、利用迴圈新增按鈕部件,及給每個按鈕設定訊號/槽

2、給按鈕設定固定大小:button.setfixedsize(qtcore.qsize(60,30))

3、取事件的的傳送者(此例為各個按鈕)的文字:self.sender().text()

【效果圖】

【源**】

1import

sys2

from pyqt5 import

qtwidgets,qtcore,qtgui34

5class

example(qtwidgets.qwidget):67

def__init__

(self):

8 super(example, self).__init__()9

self.initui()

1011

self.reset()

1213

definitui(self):

14 self.setwindowtitle('

簡易計算器')

15 grid =qtwidgets.qgridlayout()

1617 self.display = qtwidgets.qlineedit('0'

)18 self.display.setfont(qtgui.qfont("

times

", 20))

19self.display.setreadonly(true)

20self.display.setalignment(qtcore.qt.alignright)

21 self.display.setmaxlength(15)

22 grid.addwidget(self.display,0,0,1,4)

2324 names = ['

clear

', '

back

', '', '

close',

25'7', '

8', '

9', '/'

,26'4

', '

5', '

6', '*'

, 27'1

', '

2', '

3', '-'

,28'0

', '

.', '

=', '+'

]29 pos = [(0, 0), (0, 1), (0, 2), (0, 3),

30 (1, 0), (1, 1), (1, 2), (1, 3),

31 (2, 0), (2, 1), (2, 2), (2, 3),

32 (3, 0), (3, 1), (3, 2), (3, 3),

33 (4, 0), (4, 1), (4, 2), (4, 3)]

34 c =0

35for name in

names:

36 button =qtwidgets.qpushbutton(name)

37 button.setfixedsize(qtcore.qsize(60,30))

38 button.clicked.connect(self.buttonclicked) #

給每個按鈕設定訊號/槽

39if c == 2:

40pass41#

grid.addwidget(qtwidgets.qlabel(''), 0, 2) #替換 第三個按鈕 為 文字標籤!

42else

: 43 grid.addwidget(button, pos[c][0]+1, pos[c][1])

44 c = c + 1

4546

self.setlayout(grid)

4748

4950

51def

buttonclicked(self): 52#

sender = self.sender(); # 確定訊號傳送者53#

self.display.settext(sender.text())

54 text =self.sender().text()

55if text in

'+-*/':

數字入棧

運算子入棧

58 self.operator = text #

設定當前運算子

59 self.number = ""

#數字清空

60 self.numbertype = "

int"

61return

62elif text == "="

:63 self.calculate() #

計算64

elif text == "

back":

65pass

66elif text == "

clear":

67self.reset()

68elif text == "

close":

69self.close()

70elif text == "."

:71if self.numbertype == "

int"

:72 self.number +=text

73 self.numbertype = "

float"74

else

:75 self.number = self.number + text if self.number != "0"

else

text

7677

self.display.settext(self.number)

7879

defcalculate(self):

80pass

8182

defreset(self):

83 self.number = "0"

84 self.result =0

85 self.history =

86 self.operator = ''

#+,-,*,/

87 self.numbertype = '

int'

#int與float兩種,如果輸入了小數點則為實數

8890 ex =example()

91ex.show()

PyQt5 簡易計算器

剩下計算函式 self.calculator 未實現,有興趣的朋友可以實現它 知識點 1 利用迴圈新增按鈕部件,及給每個按鈕設定訊號 槽 2 給按鈕設定固定大小 button.setfixedsize qtcore.qsize 60,30 3 取事件的的傳送者 此例為各個按鈕 的文字 self.se...

pyqt5切換python版本 pyqt5介面切換

主要的思路就是建立兩個frame 如果有兩個以上同理 使用setvisible 函式顯示或者隱藏frame 引數是bool值 import sys from pyqt5.qtwidgets import from pyqt5.qtcore import from pyqt5.qtgui import...

簡易計算器

include include include char xpr expression int level char ch double calc int lim return ret int main cal的遞迴使用,利用了當 運算子運算完畢以後,仍然會留在這個位置 比如式子 3 5 2 的分析...