使用PyQt5和Qt Designer创建Python GUI应用程序系列(三)
Designer设计界面,可以使用pyuic5 将.ui文件编译成.py文件,import到代码中就可使用。
designer:
/home/linuxidc/anaconda3/bin/designer
可以在/home/linuxidc/anaconda3/bin/designer中找到,通过如下方式启动designer
-要将快捷方式添加到菜单按钮,请在属性编辑器中查找快捷方式,然后单击键盘快捷方式。
-你也可以添加一个状态提示。当您将鼠标悬停在按钮上时,它将显示在窗口的底部栏中。
如果您想紧跟本教程,我建议您添加一些菜单按钮和至少一个标签。
导出GUI
就像之前一样,我们将GUI保存为.ui文件并将其导出到python代码。
[linuxidc@linux:~/www.linuxidc.com]$ pyuic5 linuxidc.ui –o linuxidc.py
将菜单按钮链接到方法
导出gui并打开python代码,现在开始将菜单按钮链接到方法。在本教程中,我将做的是使它在每次按下菜单栏按钮时屏幕上的标签都发生变化。
第一步是编写一个新的单击方法。但是,这个名称将接受一个参数。
def clicked(self, text):
self.label.setText(text)
self.label.adjustSize()
self.actionNew.triggered.connect(lambda: self.clicked("点击了新建"))
self.actionSave.triggered.connect(lambda: self.clicked("点击了保存"))
self.actionCopy.triggered.connect(lambda: self.clicked("点击了复制"))
self.actionPaste.triggered.connect(lambda: self.clicked("点击了粘贴"))
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'test.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# 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(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(240, 50, 321, 121))
font = QtGui.QFont()
font.setPointSize(36)
self.label.setFont(font)
self.label.setObjectName("label")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
self.menubar.setObjectName("menubar")
self.menuFile = QtWidgets.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
self.menuEdit = QtWidgets.QMenu(self.menubar)
self.menuEdit.setObjectName("menuEdit")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionCopy = QtWidgets.QAction(MainWindow)
self.actionCopy.setObjectName("actionCopy")
self.actionPaste = QtWidgets.QAction(MainWindow)
self.actionPaste.setObjectName("actionPaste")
self.actionSave = QtWidgets.QAction(MainWindow)
self.actionSave.setObjectName("actionSave")
self.actionNew = QtWidgets.QAction(MainWindow)
self.actionNew.setObjectName("actionNew")
self.menuFile.addAction(self.actionNew)
self.menuFile.addAction(self.actionSave)
self.menuEdit.addAction(self.actionCopy)
self.menuEdit.addAction(self.actionPaste)
self.menubar.addAction(self.menuFile.menuAction())
self.menubar.addAction(self.menuEdit.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.actionNew.triggered.connect(lambda: self.clicked("点击了新建"))
self.actionSave.triggered.connect(lambda: self.clicked("点击了保存"))
self.actionCopy.triggered.connect(lambda: self.clicked("点击了复制"))
self.actionPaste.triggered.connect(lambda: self.clicked("点击了粘贴"))
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "Linux公社 www.linuxidc.com"))
self.label.setText(_translate("MainWindow", "Linux公社 www.linuxidc.com"))
self.label.adjustSize();
self.label.move(80, 180)
self.menuFile.setTitle(_translate("MainWindow", "文件"))
self.menuEdit.setTitle(_translate("MainWindow", "编辑"))
self.actionCopy.setText(_translate("MainWindow", "复制"))
self.actionCopy.setShortcut(_translate("MainWindow", "Ctrl+C"))
self.actionPaste.setText(_translate("MainWindow", "粘贴"))
self.actionPaste.setShortcut(_translate("MainWindow", "Ctrl+V"))
self.actionSave.setText(_translate("MainWindow", "保存"))
self.actionSave.setShortcut(_translate("MainWindow", "Ctrl+S"))
self.actionNew.setText(_translate("MainWindow", "新建"))
self.actionNew.setShortcut(_translate("MainWindow", "Ctrl+N"))
def clicked(self, text):
self.label.setText(text)
self.label.adjustSize()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
GUI应用程序 系列文章总链接见 https://www.linuxidc.com/search.aspx?where=nkey&keyword=65658
本文永久更新链接地址:https://www.linuxidc.com/Linux/2020-05/163141.htm
微信赞赏支付宝赞赏