网站建设维护费会计科目,html5微信网站模板,代做效果图网站,九一制作厂网站计算器
1.QT Designer设计外观
1.pushButton2.textEdit3.groupBox4.布局设计
2.加载ui文件
导入模块#xff1a; sys#xff1a;用于处理命令行参数。 QApplication#xff1a;PyQt5 应用程序类。 QWidget#xff1a;窗口基类。 uic#xff1a;用于加载 .ui 文件。…计算器
1.QT Designer设计外观
1.pushButton2.textEdit3.groupBox4.布局设计
2.加载ui文件
导入模块 sys用于处理命令行参数。 QApplicationPyQt5 应用程序类。 QWidget窗口基类。 uic用于加载 .ui 文件。 QIcon用于设置窗口图标。
MyWindow 类 继承自 QWidget用于创建主窗口。 init 方法中调用 self.init_ui() 初始化界面。 init_ui 方法中加载 .ui 文件并设置窗口图标和标题。
加载 .ui 文件 使用 uic.loadUi(“./计算器.ui”) 加载 .ui 文件并将其赋值给 self.ui。 self.ui 是一个包含 .ui 文件中所有控件的对象。
设置窗口图标和标题 使用 setWindowIcon 设置窗口图标。 使用 setWindowTitle 设置窗口标题。
显示窗口
在 if name “main”: 中创建 QApplication 和 MyWindow 实例并调用 w.ui.show() 显示窗口。
import sysfrom PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5 import uicclass MyWindow(QWidget):def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.ui uic.loadUi(./计算器.ui)print(self.ui.__dict__) # 查看ui文件中有哪些控件self.ui.setWindowIcon(QIcon(img.png))self.ui.setWindowTitle(傻瓜计算器) # 修改标题的名称
if __name____main__:app QApplication(sys.argv)w MyWindow()# 展示窗口w.ui.show()app.exec()
代码解释
超级呆瓜的初始化刚开始学习QT有点呆欢迎大家讨论共同进步 def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.ui uic.loadUi(./计算器.ui,self)# print(self.ui.__dict__) # 查看ui文件中有哪些控件self.ui.setWindowIcon(QIcon(img.png))self.ui.setWindowTitle(计算器) # 修改标题的名称self.x # 初始化控件self.textEdit self.ui.textEdit # 计算过程框self.textEdit_2 self.ui.textEdit_2 # 计算结果框self.pushButton_1self.ui.pushButton_1 # C :清零self.pushButton_2 self.ui.pushButton_2 # X:后退一格self.pushButton_3 self.ui.pushButton_3 # %:百分号self.pushButton_4 self.ui.pushButton_4 # /:除号self.pushButton_5 self.ui.pushButton_5 # 7self.pushButton_6 self.ui.pushButton_6 # 8self.pushButton_7 self.ui.pushButton_7 # 9self.pushButton_8 self.ui.pushButton_8 # *:乘号self.pushButton_9 self.ui.pushButton_9 # 4self.pushButton_10 self.ui.pushButton_10 # 5self.pushButton_11 self.ui.pushButton_11 # 6self.pushButton_12 self.ui.pushButton_12 # -:减法self.pushButton_13 self.ui.pushButton_13 # 1self.pushButton_14 self.ui.pushButton_14 # 2self.pushButton_15 self.ui.pushButton_15 # 3self.pushButton_16 self.ui.pushButton_16 # 加法self.pushButton_17 self.ui.pushButton_17 # eself.pushButton_18 self.ui.pushButton_18 # 0self.pushButton_19 self.ui.pushButton_19 # .self.pushButton_20 self.ui.pushButton_20 # :等号# 设置框的样式self.textEdit.setText(0)self.textEdit.setAlignment(Qt.AlignRight) # # 设置文本右对齐self.textEdit.setReadOnly(True) # 只能进行读取self.textEdit.setStyleSheet(font-size: 24px; height: 60px;) # 设置字体样式self.textEdit_2.setText(result)self.textEdit_2.setAlignment(Qt.AlignRight) # # 设置文本右对齐self.textEdit_2.setReadOnly(True) # 只能进行读取self.textEdit_2.setStyleSheet(font-size: 24px; height: 60px;) # 设置字体样式# 设置按钮格式for i in range(20):x fpushButton_{i1}self.pushButton_name getattr(self, x) # 动态访问按钮对象self.pushButton_name.setStyleSheet(font-size: 18px; padding: 10px;)self.text self.pushButton_name.text()self.pushButton_name.clicked.connect(lambda _, tself.text: self.on_button_click(t))简单的计算功能
清零计算结果显示文本 def on_button_click(self, text):# 可以获取所有符号print(text)if text C:self.reset_calculator()elif text :self.calculate_result()else:self.text_shaw(text)清零 def reset_calculator(self):self.textEdit.clear()self.textEdit.setText(0)self.textEdit.setAlignment(Qt.AlignRight) # 设置文本右对齐self.textEdit.setReadOnly(True) # 只能进行读取self.textEdit_2.setText(....)self.textEdit_2.setAlignment(Qt.AlignRight) # 设置文本右对齐self.textEdit_2.setReadOnly(True) # 只能进行读取self.x 计算结果 def calculate_result(self):all_text self.textEdit.toPlainText()print(all_text)print(type(all_text))try:result sp.sympify(all_text)print(f表达式 {all_text} 的计算结果是: {result})self.textEdit_2.setText(f{result})self.textEdit_2.setAlignment(Qt.AlignRight)except sp.SympifyError as e:print(f无法解析表达式: {e})显示文本 def text_shaw(self,text):self.x f{text}self.textEdit.setText(self.x)self.textEdit.setAlignment(Qt.AlignRight)键盘输出 def keyPressEvent(self, event):key event.text()print(key)if key in 0123456789.-*/:self.on_button_click(key)print(key)elif event.key() in (Qt.Key_Enter, Qt.Key_Return):self.on_button_click()elif event.key() Qt.Key_Escape:self.reset_calculator()整体代码
import sys
import re
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit
from PyQt5 import uic
import sympy as sp #计算的库可以实现四则运算class MyWindow(QWidget):def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.ui uic.loadUi(./计算器.ui,self)# print(self.ui.__dict__) # 查看ui文件中有哪些控件self.ui.setWindowIcon(QIcon(img.png))self.ui.setWindowTitle(计算器) # 修改标题的名称self.x # 初始化控件self.textEdit self.ui.textEdit # 计算过程框self.textEdit_2 self.ui.textEdit_2 # 计算结果框self.pushButton_1self.ui.pushButton_1 # C :清零self.pushButton_2 self.ui.pushButton_2 # X:后退一格self.pushButton_3 self.ui.pushButton_3 # %:百分号self.pushButton_4 self.ui.pushButton_4 # /:除号self.pushButton_5 self.ui.pushButton_5 # 7self.pushButton_6 self.ui.pushButton_6 # 8self.pushButton_7 self.ui.pushButton_7 # 9self.pushButton_8 self.ui.pushButton_8 # *:乘号self.pushButton_9 self.ui.pushButton_9 # 4self.pushButton_10 self.ui.pushButton_10 # 5self.pushButton_11 self.ui.pushButton_11 # 6self.pushButton_12 self.ui.pushButton_12 # -:减法self.pushButton_13 self.ui.pushButton_13 # 1self.pushButton_14 self.ui.pushButton_14 # 2self.pushButton_15 self.ui.pushButton_15 # 3self.pushButton_16 self.ui.pushButton_16 # 加法self.pushButton_17 self.ui.pushButton_17 # eself.pushButton_18 self.ui.pushButton_18 # 0self.pushButton_19 self.ui.pushButton_19 # .self.pushButton_20 self.ui.pushButton_20 # :等号# 设置框的样式self.textEdit.setText(0)self.textEdit.setAlignment(Qt.AlignRight) # # 设置文本右对齐self.textEdit.setReadOnly(True) # 只能进行读取self.textEdit.setStyleSheet(font-size: 24px; height: 60px;) # 设置字体样式self.textEdit_2.setText(result)self.textEdit_2.setAlignment(Qt.AlignRight) # # 设置文本右对齐self.textEdit_2.setReadOnly(True) # 只能进行读取self.textEdit_2.setStyleSheet(font-size: 24px; height: 60px;) # 设置字体样式# 设置按钮格式for i in range(20):x fpushButton_{i1}self.pushButton_name getattr(self, x) # 动态访问按钮对象self.pushButton_name.setStyleSheet(font-size: 18px; padding: 10px;)self.text self.pushButton_name.text()self.pushButton_name.clicked.connect(lambda _, tself.text: self.on_button_click(t))# 实现了按键显示def on_button_click(self, text):# 可以获取所有符号print(text)if text C:self.reset_calculator()elif text :self.calculate_result()else:self.text_shaw(text)def reset_calculator(self):self.textEdit.clear()self.textEdit.setText(0)self.textEdit.setAlignment(Qt.AlignRight) # 设置文本右对齐self.textEdit.setReadOnly(True) # 只能进行读取self.textEdit_2.setText(....)self.textEdit_2.setAlignment(Qt.AlignRight) # 设置文本右对齐self.textEdit_2.setReadOnly(True) # 只能进行读取self.x def calculate_result(self):all_text self.textEdit.toPlainText()print(all_text)print(type(all_text))try:result sp.sympify(all_text)print(f表达式 {all_text} 的计算结果是: {result})self.textEdit_2.setText(f{result})self.textEdit_2.setAlignment(Qt.AlignRight)except sp.SympifyError as e:print(f无法解析表达式: {e})result re.split(r([*/-]), all_text) # 保留分隔符print(result)def text_shaw(self,text):self.x f{text}self.textEdit.setText(self.x)self.textEdit.setAlignment(Qt.AlignRight)def keyPressEvent(self, event):key event.text()print(key)if key in 0123456789.-*/:self.on_button_click(key)print(key)elif event.key() in (Qt.Key_Enter, Qt.Key_Return):self.on_button_click()elif event.key() Qt.Key_Escape:self.reset_calculator()if __name____main__:app QApplication(sys.argv)w MyWindow()w.ui.show()app.exec()
界面展示 有任何问题可以联系我欢迎大家来讨论共同进步。