实现效果
完整代码
将ui转成代码后,通过继承的方式使用界面代码。CMainWindow中实现的是主要逻辑代码。
import sys
from PyQt5 import QtWidgets
from PyQt5.QtGui import QPixmap
from Ui_Mainwindow import Ui_MainWindow
class CMainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
number1 = 0
number2 = 0
type = 0
s = ""
def __init__(self, parent=None):
super(CMainWindow, self).__init__(parent)
self.setupUi(self)
pixmap = QPixmap(r'computer.png') # 按指定路径找到图片
# 点击左侧按钮页面1切换到第一个页面
self.pushButton.clicked.connect(self.display_page1)
# 点击左侧按钮页面2切换到第二个页面
self.pushButton_2.clicked.connect(self.display_page2)
# 点击左侧按钮页面3切换到第三个页面
self.pushButton_3.clicked.connect(self.display_page3)
# 主窗体设置
self.setFixedSize(self.width(), self.height())
self.label_4.setPixmap(pixmap)
self.label_4.setScaledContents(True)
self.show()
def btnAdd_clicked(self):
self.lineEdit.insert(" + ")
def AddNumber(self, number):
print(self.s)
self.lineEdit.setText(self.s)
def Push00(self):
self.s = self.s + "00"
self.lineEdit.insert("00")
def Push0(self):
self.s = self.s + "0"
self.lineEdit.insert("0")
def Push1(self):
self.s = self.s + "1"
self.lineEdit.insert("1")
def Push2(self):
self.s = self.s + "2"
self.lineEdit.insert("2")
def Push3(self):
self.s = self.s + "3"
self.lineEdit.insert("3")
def Push4(self):
self.s = self.s + "4"
self.lineEdit.insert("4")
def Push5(self):
self.s = self.s + "5"
self.lineEdit.insert("5")
def Push6(self):
self.s = self.s + "6"
self.lineEdit.insert("6")
def Push7(self):
self.s = self.s + "7"
self.lineEdit.insert("7")
def Push8(self):
self.s = self.s + "8"
self.lineEdit.insert("8")
def Push9(self):
self.s = self.s + "9"
self.lineEdit.insert("9")
def PushDot(self):
self.s = self.s + "."
self.lineEdit.insert(".")
def PushClr(self):
self.s = ""
self.lineEdit.setText("")
def PushAdd(self):
self.number1 = float(self.lineEdit.text())
self.type = 1
self.s = self.s + "+"
self.lineEdit.insert("+")
def PushSub(self):
self.number1 = float(self.lineEdit.text())
self.type = 3
self.s = self.s + "-"
self.lineEdit.insert("-")
def PushMul(self):
self.type = 2
self.s = self.s + "*"
self.lineEdit.insert("*")
def PushDiv(self):
self.type = 2
self.s = self.s + "/"
self.lineEdit.insert("/")
def PushEqr(self): # 重写计算函数
result = eval(self.s) # 计算
self.lineEdit.setText(str(result))
# 页面1
def display_page1(self):
self.stackedWidget.setCurrentIndex(0)
def display_page2(self):
self.stackedWidget.setCurrentIndex(1)
# 页面2
def display_page3(self):
self.stackedWidget.setCurrentIndex(2)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = CMainWindow()
w.setWindowTitle("百宝箱")
w.show()
sys.exit(app.exec_())
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'c:\Users\吴华锦\Desktop\大作业\Mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.15.7
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1206, 822)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.layoutWidget = QtWidgets.QWidget(self.centralwidget)
self.layoutWidget.setGeometry(QtCore.QRect(10, 20, 1011, 651))
self.layoutWidget.setObjectName("layoutWidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.layoutWidget)
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.frame = QtWidgets.QFrame(self.layoutWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(1)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
self.frame.setSizePolicy(sizePolicy)
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame.setObjectName("frame")
self.pushButton = QtWidgets.QPushButton(self.frame)
self.pushButton.setGeometry(QtCore.QRect(20, 80, 93, 28))
self.pushButton.setStyleSheet("QPushButton{\n"
" background-color:rgb(0, 174, 236); \n"
"\n"
"}\n"
"\n"
"QPushButton::hover{\n"
" background-color:rgb(0); \n"
"\n"
"}")
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.frame)
self.pushButton_2.setGeometry(QtCore.QRect(20, 140, 93, 28))
self.pushButton_2.setStyleSheet("QPushButton{\n"
" background-color:rgb(0, 174, 236); \n"
"\n"
"}\n"
"\n"
"QPushButton::hover{\n"
" background-color:rgb(0); \n"
"\n"
"}")
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self.frame)
self.pushButton_3.setGeometry(QtCore.QRect(20, 210, 93, 28))
self.pushButton_3.setStyleSheet("QPushButton{\n"
" background-color:rgb(0, 174, 236); \n"
"\n"
"}\n"
"\n"
"QPushButton::hover{\n"
" background-color:rgb(0); \n"
"\n"
"}")
self.pushButton_3.setObjectName("pushButton_3")
self.horizontalLayout.addWidget(self.frame)
self.frame_2 = QtWidgets.QFrame(self.layoutWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(5)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.frame_2.sizePolicy().hasHeightForWidth())
self.frame_2.setSizePolicy(sizePolicy)
self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_2.setObjectName("frame_2")
self.stackedWidget = QtWidgets.QStackedWidget(self.frame_2)
self.stackedWidget.setGeometry(QtCore.QRect(20, 0, 821, 641))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.stackedWidget.sizePolicy().hasHeightForWidth())
self.stackedWidget.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Agency FB")
font.setPointSize(20)
self.stackedWidget.setFont(font)
self.stackedWidget.setStyleSheet("")
self.stackedWidget.setObjectName("stackedWidget")
self.page = QtWidgets.QWidget()
self.page.setStyleSheet("")
self.page.setObjectName("page")
self.label = QtWidgets.QLabel(self.page)
self.label.setGeometry(QtCore.QRect(20, 10, 161, 81))
font = QtGui.QFont()
font.setFamily("SimSun-ExtB")
font.setPointSize(36)
self.label.setFont(font)
self.label.setObjectName("label")
self.butClr = QtWidgets.QPushButton(self.page)
self.butClr.setGeometry(QtCore.QRect(100, 150, 80, 80))
self.butClr.setObjectName("butClr")
self.but7 = QtWidgets.QPushButton(self.page)
self.but7.setGeometry(QtCore.QRect(100, 230, 80, 80))
self.but7.setObjectName("but7")
self.but4 = QtWidgets.QPushButton(self.page)
self.but4.setGeometry(QtCore.QRect(100, 310, 80, 80))
self.but4.setObjectName("but4")
self.lineEdit = QtWidgets.QLineEdit(self.page)
self.lineEdit.setGeometry(QtCore.QRect(100, 80, 320, 70))
self.lineEdit.setReadOnly(True)
self.lineEdit.setObjectName("lineEdit")
self.butAdd = QtWidgets.QPushButton(self.page)
self.butAdd.setGeometry(QtCore.QRect(340, 150, 80, 80))
self.butAdd.setObjectName("butAdd")
self.but6 = QtWidgets.QPushButton(self.page)
self.but6.setGeometry(QtCore.QRect(260, 310, 80, 80))
self.but6.setObjectName("but6")
self.but9 = QtWidgets.QPushButton(self.page)
self.but9.setGeometry(QtCore.QRect(260, 230, 80, 80))
self.but9.setObjectName("but9")
self.but5 = QtWidgets.QPushButton(self.page)
self.but5.setGeometry(QtCore.QRect(180, 310, 80, 80))
self.but5.setObjectName("but5")
self.butPer = QtWidgets.QPushButton(self.page)
self.butPer.setGeometry(QtCore.QRect(260, 150, 80, 80))
self.butPer.setObjectName("butPer")
self.but1 = QtWidgets.QPushButton(self.page)
self.but1.setGeometry(QtCore.QRect(100, 390, 80, 80))
self.but1.setObjectName("but1")
self.but8 = QtWidgets.QPushButton(self.page)
self.but8.setGeometry(QtCore.QRect(180, 230, 80, 80))
self.but8.setObjectName("but8")
self.butDel = QtWidgets.QPushButton(self.page)
self.butDel.setGeometry(QtCore.QRect(180, 150, 80, 80))
self.butDel.setObjectName("butDel")
self.but2 = QtWidgets.QPushButton(self.page)
self.but2.setGeometry(QtCore.QRect(180, 390, 80, 80))
self.but2.setObjectName("but2")
self.but3 = QtWidgets.QPushButton(self.page)
self.but3.setGeometry(QtCore.QRect(260, 390, 80, 80))
self.but3.setObjectName("but3")
self.butSub = QtWidgets.QPushButton(self.page)
self.butSub.setGeometry(QtCore.QRect(340, 230, 80, 80))
self.butSub.setObjectName("butSub")
self.butMul = QtWidgets.QPushButton(self.page)
self.butMul.setGeometry(QtCore.QRect(340, 310, 80, 80))
self.butMul.setObjectName("butMul")
self.butDiv = QtWidgets.QPushButton(self.page)
self.butDiv.setGeometry(QtCore.QRect(340, 390, 80, 80))
self.butDiv.setObjectName("butDiv")
self.butEqr = QtWidgets.QPushButton(self.page)
self.butEqr.setGeometry(QtCore.QRect(260, 470, 160, 80))
self.butEqr.setObjectName("butEqr")
self.butDot = QtWidgets.QPushButton(self.page)
self.butDot.setGeometry(QtCore.QRect(180, 470, 80, 80))
self.butDot.setObjectName("butDot")
self.but0 = QtWidgets.QPushButton(self.page)
self.but0.setGeometry(QtCore.QRect(100, 470, 80, 80))
self.but0.setObjectName("but0")
self.label_4 = QtWidgets.QLabel(self.page)
self.label_4.setGeometry(QtCore.QRect(400, 50, 421, 581))
self.label_4.setText("")
self.label_4.setObjectName("label_4")
self.label_4.raise_()
self.label.raise_()
self.butClr.raise_()
self.but7.raise_()
self.but4.raise_()
self.lineEdit.raise_()
self.butAdd.raise_()
self.but6.raise_()
self.but9.raise_()
self.but5.raise_()
self.butPer.raise_()
self.but1.raise_()
self.but8.raise_()
self.butDel.raise_()
self.but2.raise_()
self.but3.raise_()
self.butSub.raise_()
self.butMul.raise_()
self.butDiv.raise_()
self.butEqr.raise_()
self.butDot.raise_()
self.but0.raise_()
self.stackedWidget.addWidget(self.page)
self.page_2 = QtWidgets.QWidget()
self.page_2.setObjectName("page_2")
self.label_2 = QtWidgets.QLabel(self.page_2)
self.label_2.setGeometry(QtCore.QRect(10, 10, 161, 81))
font = QtGui.QFont()
font.setFamily("SimSun-ExtB")
font.setPointSize(36)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.calendarWidget = QtWidgets.QCalendarWidget(self.page_2)
self.calendarWidget.setGeometry(QtCore.QRect(50, 110, 651, 441))
self.calendarWidget.setObjectName("calendarWidget")
self.stackedWidget.addWidget(self.page_2)
self.page_3 = QtWidgets.QWidget()
self.page_3.setObjectName("page_3")
self.label_3 = QtWidgets.QLabel(self.page_3)
self.label_3.setGeometry(QtCore.QRect(20, 20, 161, 81))
font = QtGui.QFont()
font.setFamily("SimSun-ExtB")
font.setPointSize(36)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.stackedWidget.addWidget(self.page_3)
self.horizontalLayout.addWidget(self.frame_2)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1206, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.stackedWidget.setCurrentIndex(0)
self.butSub.clicked.connect(MainWindow.PushSub) # type: ignore
self.butMul.clicked.connect(MainWindow.PushMul) # type: ignore
self.butDiv.clicked.connect(MainWindow.PushDiv) # type: ignore
self.butClr.clicked.connect(MainWindow.PushClr) # type: ignore
self.but7.clicked.connect(MainWindow.Push7) # type: ignore
self.but4.clicked.connect(MainWindow.Push4) # type: ignore
self.but1.clicked.connect(MainWindow.Push1) # type: ignore
self.but0.clicked.connect(MainWindow.Push0) # type: ignore
self.butDot.clicked.connect(MainWindow.PushDot) # type: ignore
self.but2.clicked.connect(MainWindow.Push2) # type: ignore
self.but5.clicked.connect(MainWindow.Push5) # type: ignore
self.but8.clicked.connect(MainWindow.Push8) # type: ignore
self.but9.clicked.connect(MainWindow.Push9) # type: ignore
self.but6.clicked.connect(MainWindow.Push6) # type: ignore
self.but3.clicked.connect(MainWindow.Push3) # type: ignore
self.butAdd.clicked.connect(MainWindow.PushAdd) # type: ignore
self.butEqr.clicked.connect(MainWindow.PushEqr) # type: ignore
self.butAdd.clicked.connect(MainWindow.AddNumber) # type: ignore
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "计算机"))
self.pushButton_2.setText(_translate("MainWindow", "日历"))
self.pushButton_3.setText(_translate("MainWindow", "页面3"))
self.label.setText(_translate("MainWindow", "界面1"))
self.butClr.setText(_translate("MainWindow", "c"))
self.but7.setText(_translate("MainWindow", "7"))
self.but4.setText(_translate("MainWindow", "4"))
self.butAdd.setText(_translate("MainWindow", "+"))
self.but6.setText(_translate("MainWindow", "6"))
self.but9.setText(_translate("MainWindow", "9"))
self.but5.setText(_translate("MainWindow", "5"))
self.butPer.setText(_translate("MainWindow", "%"))
self.but1.setText(_translate("MainWindow", "1"))
self.but8.setText(_translate("MainWindow", "8"))
self.butDel.setText(_translate("MainWindow", "<-"))
self.but2.setText(_translate("MainWindow", "2"))
self.but3.setText(_translate("MainWindow", "3"))
self.butSub.setText(_translate("MainWindow", "-"))
self.butMul.setText(_translate("MainWindow", "*"))
self.butDiv.setText(_translate("MainWindow", "/"))
self.butEqr.setText(_translate("MainWindow", "="))
self.butDot.setText(_translate("MainWindow", "."))
self.but0.setText(_translate("MainWindow", "0"))
self.label_2.setText(_translate("MainWindow", "界面2"))
self.label_3.setText(_translate("MainWindow", "界面3"))