標籤:

【Python】【PyQt5】利用QtDesigner創建第一個計算器項目UI部分

首先創建一個空白窗口

QWidget>windowIcon更換圖標

QWidget>windowTitle改成計算器

QWidget>windowThis改成計算器

右上角的問號

LCD Number

修改LCD的對象名稱為lcd

將LCD的邊框改成NoFrame無邊框

將LCD最大數字位數顯示由5改成10

創建17個PushButton按鈕

修改所有PushButton的對象名稱

再降按鈕的內容改成對應的數字或者符號

把字體調大一點

所有按鈕都設置好後如下圖:

選中第一行>Form>Lay Out Horizontally(水平布局)

成功後如下圖

以次類推,餘下幾行也設置為水平布局

>Form>Lay Out Vertically(垂直布局)

再將總共五行按鈕設置為垂直布局

效果圖如下

再選中整個窗體進行垂直布局

效果如下

保存一下

按照下文方法將UI文件轉換成py文件

遂越凈郝:【Python】【PyQt5】利用QtDesigner創建第一個pyqt項目?

zhuanlan.zhihu.com圖標

生成py文件如下

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file ui-calculator.ui
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(764, 720)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("calculator.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.lcd = QtWidgets.QLCDNumber(self.centralwidget)
self.lcd.setFrameShape(QtWidgets.QFrame.NoFrame)
self.lcd.setDigitCount(10)
self.lcd.setObjectName("lcd")
self.verticalLayout_2.addWidget(self.lcd)
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.Button_1 = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_1.setFont(font)
self.Button_1.setObjectName("Button_1")
self.horizontalLayout.addWidget(self.Button_1)
self.Button_2 = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_2.setFont(font)
self.Button_2.setObjectName("Button_2")
self.horizontalLayout.addWidget(self.Button_2)
self.Button_3 = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_3.setFont(font)
self.Button_3.setObjectName("Button_3")
self.horizontalLayout.addWidget(self.Button_3)
self.Button_plus = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_plus.setFont(font)
self.Button_plus.setObjectName("Button_plus")
self.horizontalLayout.addWidget(self.Button_plus)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.Button_4 = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_4.setFont(font)
self.Button_4.setObjectName("Button_4")
self.horizontalLayout_2.addWidget(self.Button_4)
self.Button_5 = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_5.setFont(font)
self.Button_5.setObjectName("Button_5")
self.horizontalLayout_2.addWidget(self.Button_5)
self.Button_6 = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_6.setFont(font)
self.Button_6.setObjectName("Button_6")
self.horizontalLayout_2.addWidget(self.Button_6)
self.Button_reduce = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_reduce.setFont(font)
self.Button_reduce.setObjectName("Button_reduce")
self.horizontalLayout_2.addWidget(self.Button_reduce)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.Button_7 = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_7.setFont(font)
self.Button_7.setObjectName("Button_7")
self.horizontalLayout_3.addWidget(self.Button_7)
self.Button_8 = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_8.setFont(font)
self.Button_8.setObjectName("Button_8")
self.horizontalLayout_3.addWidget(self.Button_8)
self.Button_9 = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_9.setFont(font)
self.Button_9.setObjectName("Button_9")
self.horizontalLayout_3.addWidget(self.Button_9)
self.Button_multiply = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_multiply.setFont(font)
self.Button_multiply.setObjectName("Button_multiply")
self.horizontalLayout_3.addWidget(self.Button_multiply)
self.verticalLayout.addLayout(self.horizontalLayout_3)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.Button_0 = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_0.setFont(font)
self.Button_0.setObjectName("Button_0")
self.horizontalLayout_4.addWidget(self.Button_0)
self.Button_point = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_point.setFont(font)
self.Button_point.setObjectName("Button_point")
self.horizontalLayout_4.addWidget(self.Button_point)
self.Button_clear = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_clear.setFont(font)
self.Button_clear.setObjectName("Button_clear")
self.horizontalLayout_4.addWidget(self.Button_clear)
self.Button_div = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_div.setFont(font)
self.Button_div.setObjectName("Button_div")
self.horizontalLayout_4.addWidget(self.Button_div)
self.verticalLayout.addLayout(self.horizontalLayout_4)
self.Button_equal = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.Button_equal.setFont(font)
self.Button_equal.setObjectName("Button_equal")
self.verticalLayout.addWidget(self.Button_equal)
self.verticalLayout_2.addLayout(self.verticalLayout)
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "計算器"))
MainWindow.setWhatsThis(_translate("MainWindow", "計算器"))
self.Button_1.setText(_translate("MainWindow", "1"))
self.Button_2.setText(_translate("MainWindow", "2"))
self.Button_3.setText(_translate("MainWindow", "3"))
self.Button_plus.setText(_translate("MainWindow", "+"))
self.Button_4.setText(_translate("MainWindow", "4"))
self.Button_5.setText(_translate("MainWindow", "5"))
self.Button_6.setText(_translate("MainWindow", "6"))
self.Button_reduce.setText(_translate("MainWindow", "-"))
self.Button_7.setText(_translate("MainWindow", "7"))
self.Button_8.setText(_translate("MainWindow", "8"))
self.Button_9.setText(_translate("MainWindow", "9"))
self.Button_multiply.setText(_translate("MainWindow", "*"))
self.Button_0.setText(_translate("MainWindow", "0"))
self.Button_point.setText(_translate("MainWindow", "."))
self.Button_clear.setText(_translate("MainWindow", "C"))
self.Button_div.setText(_translate("MainWindow", "/"))
self.Button_equal.setText(_translate("MainWindow", "="))

按如下格式運行

import sys
from uicalculator import Ui_MainWindow#調用ui模塊中的Ui_MainWindow()類
from PyQt5.QtWidgets import QApplication,QMainWindow#Qt設計師上第一步創建時選擇了Main Window時繼承QMainWindow類
#Qt設計師上第一步創建時選擇了Dialog時繼承QDialog類
#Qt設計師上第一步創建時選擇了Widget時繼承QWidget類
class Digcalculator(QMainWindow,Ui_MainWindow):#繼承自父類QtWidgets.QMainWindow
# Qt設計師上第一步創建時選擇了Main Window時繼承QMainWindow類
# Qt設計師上第一步創建時選擇了Dialog時繼承QDialog類
# Qt設計師上第一步創建時選擇了Widget時繼承QWidget類
def __init__(self,parent = None):#parent = None代表此QWidget屬於最上層的窗口,也就是MainWindows.
super(Digcalculator, self).__init__()#因為繼承關係,要對父類初始化
#通過super初始化父類,__init__()函數無self,若直接QtWidgets.QMainWindow).__init__(self),括弧里是有self的
self.setupUi(self)

if __name__ == __main__:
app = QApplication(sys.argv)
window = Digcalculator()
window.show()
sys.exit(app.exec_())

Qt設計師上第一步創建時選擇了Main Window時繼承QMainWindow類

Qt設計師上第一步創建時選擇了Dialog時繼承QDialog類

Qt設計師上第一步創建時選擇了Widget時繼承QWidget類

運行效果如下

視頻封面

00:11
推薦閱讀:

TAG:Python入門 |