PyQt5:从设计文件加载菜单

2024-10-03 02:37:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试加载主程序窗口的设计文件。如何访问菜单栏、菜单(和子菜单)并设置操作

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, design_file='Lab1_Main.ui'):
        super().__init__()
        uic.loadUi(design_file, self)

菜单已实现为设计文件

enter image description here


Tags: 文件selfinitmaindef菜单classfile
1条回答
网友
1楼 · 发布于 2024-10-03 02:37:12

当使用uic方法设置ui时(或者对于pyuic生成的文件,setupUi),在设计器中创建的任何对象都可以从其objectName property访问

在您的例子中,第一个菜单可以从self.ToolsMenu访问,它的第一个操作是self.ChangePassword,等等

认为您也可以从^{}函数访问菜单栏(如果存在,返回当前菜单栏,否则创建一个新的菜单栏),并且可以使用^ {CD6>}循环它的内容,与任何QWIDGET一样:

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, design_file='Lab1_Main.ui'):
        super().__init__()
        uic.loadUi(design_file, self)
        self.printActions(self.menuBar())

    def printActions(self, obj, indent=0):
        for action in obj.actions():
            if action.isSeparator() and not action.text():
                print('\t' * indent + '[separator]')
            else:
                print('\t' * indent + action.text())
                if action.menu():
                    self.printActions(action.menu(), indent + 1)

建议:避免使用大写的对象名称;通常(不仅仅是Python)只对类和常量使用大写名称,因为这种做法提高了可读性,因为更容易区分类/常量和函数/变量。

相关问题 更多 >