写python的软件px_python自写软件(二)

1 from PyQt5.QtWidgets importQLabel, QApplication, QDialog, QGridLayout, QHBoxLayout, QPushButton, QFormLayout, \2 QWidget, \3 QLineEdit4 importsys5 from PyQt5.QtCore importQt6 from PyQt5.QtGui importQIcon7 importtest8

9

10 classcalculator_frame(QDialog):11 def __init__(self):12 super().__init__()13 self.shower =QLineEdit()14 self.label =QLabel()15 self.init()16 self.tmp_string_num = ""

17 self.tmp_num =018 self.sum_num = ""

19 self.num =020

21 defclear(self):22 self.tmp_string_num = ""

23 self.tmp_num =024 self.sum_num = ""

25 self.num =026 self.shower.setText("")27 self.label.setText("")28

29 definit(self):30

31 self.setWindowTitle("myCalculator")32 self.setWindowIcon(QIcon(':/calculator.ico'))33 self.label.setStyleSheet('font-size:20px;color:rgb(180,180,180,255);')34 self.shower.setStyleSheet('font-size:20px;color:rgb(180,180,180,255);')35 self.shower.setEnabled(False)36 hbox =QHBoxLayout()37 form_widget =QWidget()38 grid_widget =QWidget()39 form_layout =QFormLayout()40 form_layout.addRow("memory:", self.shower)41 form_layout.addRow("result=", self.label)42 form_widget.setLayout(form_layout)43 #self.setFixedSize(300,200)

44

45 grid_layout =QGridLayout()46 one = QPushButton("1")47 two = QPushButton("2")48 three = QPushButton("3")49 four = QPushButton("4")50 five = QPushButton("5")51 six = QPushButton("6")52 seven = QPushButton("7")53 eight = QPushButton("8")54 nine = QPushButton("9")55 zero = QPushButton("0")56 point = QPushButton(".")57 equal = QPushButton("=")58 add = QPushButton("+")59 sub = QPushButton("-")60 mult = QPushButton("*")61 div = QPushButton("/")62 remove = QPushButton("AC")63 open_paren = QPushButton("(")64 close_paren = QPushButton(")")65 remainer = QPushButton("%")66 one.clicked.connect(self.clicker)67 two.clicked.connect(self.clicker)68 three.clicked.connect(self.clicker)69 four.clicked.connect(self.clicker)70 five.clicked.connect(self.clicker)71 six.clicked.connect(self.clicker)72 seven.clicked.connect(self.clicker)73 eight.clicked.connect(self.clicker)74 nine.clicked.connect(self.clicker)75 zero.clicked.connect(self.clicker)76 add.clicked.connect(self.clicker)77 sub.clicked.connect(self.clicker)78 mult.clicked.connect(self.clicker)79 div.clicked.connect(self.clicker)80 equal.clicked.connect(self.clicker)81 point.clicked.connect(self.clicker)82 remove.clicked.connect(self.clicker)83 open_paren.clicked.connect(self.clicker)84 close_paren.clicked.connect(self.clicker)85 remainer.clicked.connect(self.clicker)86

87 one.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')88 two.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')89 three.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')90 four.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')91 five.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')92 six.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')93 seven.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')94 eight.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')95 nine.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')96 zero.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')97 point.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')98 equal.setStyleSheet('font-size:32px;color:rgb(0,0,0,255);')99 add.setStyleSheet('font-size:28px;color:rgb(0,0,0,255);')100 sub.setStyleSheet('font-size:28px;color:rgb(0,0,0,255);')101 mult.setStyleSheet('font-size:28px;color:rgb(0,0,0,255);')102 div.setStyleSheet('font-size:28px;color:rgb(0,0,0,255);')103 remove.setStyleSheet('font-size:28px;color:rgb(0,0,0,255);')104 open_paren.setStyleSheet('font-size:28px;color:rgb(0,0,0,255);')105 close_paren.setStyleSheet('font-size:28px;color:rgb(0,0,0,255);')106 remainer.setStyleSheet('font-size:28px;color:rgb(0,0,0,255);')107

108 grid_layout.addWidget(add, 2, 4)109 grid_layout.addWidget(div, 1, 4)110 grid_layout.addWidget(mult, 0, 4)111 grid_layout.addWidget(sub, 3, 4)112 grid_layout.addWidget(zero, 3, 2)113 grid_layout.addWidget(point, 3, 1)114 grid_layout.addWidget(equal, 3, 3)115 grid_layout.addWidget(one, 2, 1)116 grid_layout.addWidget(two, 2, 2)117 grid_layout.addWidget(three, 2, 3)118 grid_layout.addWidget(four, 1, 1)119 grid_layout.addWidget(five, 1, 2)120 grid_layout.addWidget(six, 1, 3)121 grid_layout.addWidget(seven, 0, 1)122 grid_layout.addWidget(eight, 0, 2)123 grid_layout.addWidget(nine, 0, 3)124 grid_layout.addWidget(remove, 0, 5)125 grid_layout.addWidget(remainer, 3, 5)126 grid_layout.addWidget(open_paren, 1, 5)127 grid_layout.addWidget(close_paren, 2, 5)128 grid_widget.setLayout(grid_layout)129 hbox.addWidget(form_widget, 0, Qt.AlignLeft)130 hbox.addWidget(grid_widget, 0, Qt.AlignRight)131 self.setLayout(hbox)132

133 defclicker(self):134 num_or_opt =self.sender().text()135 ifnum_or_opt.isdigit():136 self.tmp_string_num +=str(num_or_opt)137 self.tmp_num =int(self.tmp_string_num)138 self.shower.setText(self.tmp_string_num)139 self.sum_num +=self.tmp_string_num140 print(self.sum_num)141 self.label.setText(self.sum_num)142 self.tmp_string_num = ""

143 self.tmp_num =0144 else:145 if not num_or_opt == "=" and (not num_or_opt == "AC"):146 self.tmp_string_num +=num_or_opt147 self.sum_num +=num_or_opt148 self.shower.setText(self.tmp_string_num)149 self.label.setText(self.sum_num)150 self.tmp_string_num = ""

151 self.tmp_num =0152 elif num_or_opt == "AC":153 self.clear()154 else:155 self.label.setText(str(eval(self.sum_num)))156

157

158 if __name__ == '__main__':159 app =QApplication(sys.argv)160 mainFrame =calculator_frame()161 mainFrame.show()162 sys.exit(app.exec_())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值