《PyQt5快速开发与实践》笔记
一、界面设计
使用Qtdesigner设计包含菜单栏和工具栏的界面。
小知识:
1.菜单栏中,对于一级菜单,可以通过输入**“文件(&F)”和“编辑(&E)”来加入快捷键
2.子菜单可以通过在动作编辑器**中添加快捷键、图标等
3.默认无工具栏,工具栏通过鼠标右击添加
4.工具栏中图标的添加方式:在动作编辑器中新建一个Action,并修改图标等信息,将其拖入工具栏
文中示例设置了四个动作:
二、在主窗口中加载其他子窗口
应用场景:在主界面中显示新的子界面
原理:将子窗口实例作为主窗口中的一个元素,在特定条件下通过调用addWeidget方法添加到Layout中,再通过show()方法显示该窗口即可。
-- coding: utf-8 --
Form implementation generated from reading ui file ‘MainForm2.ui’
Created by: PyQt5 UI code generator 5.6
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(391, 500)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName(“centralwidget”)
self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.gridLayoutWidget.setGeometry(QtCore.QRect(-1, -1, 611, 441))
self.gridLayoutWidget.setObjectName(“gridLayoutWidget”)
self.MaingridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
self.MaingridLayout.setContentsMargins(0, 0, 0, 0)
self.MaingridLayout.setObjectName(“MaingridLayout”)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 391, 23))
self.menubar.setObjectName(“menubar”)
self.menu = QtWidgets.QMenu(self.menubar)
self.menu.setObjectName(“menu”)
self.menu_E = QtWidgets.QMenu(self.menubar)
self.menu_E.setObjectName(“menu_E”)
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName(“statusbar”)
MainWindow.setStatusBar(self.statusbar)
self.toolBar = QtWidgets.QToolBar(MainWindow)
self.toolBar.setObjectName(“toolBar”)
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
self.fileOpenAction = QtWidgets.QAction(MainWindow)
self.fileOpenAction.setObjectName(“fileOpenAction”)
self.fileNewAction = QtWidgets.QAction(MainWindow)
self.fileNewAction.setObjectName(“fileNewAction”)
self.fileCloseAction = QtWidgets.QAction(MainWindow)
self.fileCloseAction.setObjectName(“fileCloseAction”)
self.addWinAction = QtWidgets.QAction(MainWindow)
self.addWinAction.setObjectName(“addWinAction”)
self.menu.addAction(self.fileOpenAction)
self.menu.addAction(self.fileNewAction)
self.menu.addAction(self.fileCloseAction)
self.menubar.addAction(self.menu.menuAction())
self.menubar.addAction(self.menu_E.menuAction())
self.toolBar.addAction(self.addWinAction)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.menu.setTitle(_translate("MainWindow", "文件(&F)"))
self.menu_E.setTitle(_translate("MainWindow", "编辑(&E)"))
self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
self.fileOpenAction.setText(_translate("MainWindow", "打开"))
self.fileOpenAction.setShortcut(_translate("MainWindow", "Alt+O"))
self.fileNewAction.setText(_translate("MainWindow", "新建"))
self.fileNewAction.setShortcut(_translate("MainWindow", "Alt+N"))
self.fileCloseAction.setText(_translate("MainWindow", "关闭"))
self.fileCloseAction.setShortcut(_translate("MainWindow", "Alt+C"))
self.addWinAction.setText(_translate("MainWindow", "添加窗体"))
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'MainForm2.ui'
#
# Created by: PyQt5 UI code generator 5.6
#
# 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(391, 500)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")