2024-10-03 02:37:12 发布
网友
我正在尝试加载主程序窗口的设计文件。如何访问菜单栏、菜单(和子菜单)并设置操作
class MainWindow(QtWidgets.QMainWindow): def __init__(self, design_file='Lab1_Main.ui'): super().__init__() uic.loadUi(design_file, self)
菜单已实现为设计文件
当使用uic方法设置ui时(或者对于pyuic生成的文件,setupUi),在设计器中创建的任何对象都可以从其objectName property访问
uic
setupUi
在您的例子中,第一个菜单可以从self.ToolsMenu访问,它的第一个操作是self.ChangePassword,等等
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)只对类和常量使用大写名称,因为这种做法提高了可读性,因为更容易区分类/常量和函数/变量。
当使用
uic
方法设置ui时(或者对于pyuic生成的文件,setupUi
),在设计器中创建的任何对象都可以从其objectName property访问在您的例子中,第一个菜单可以从
self.ToolsMenu
访问,它的第一个操作是self.ChangePassword
,等等认为您也可以从^{} 函数访问菜单栏(如果存在,返回当前菜单栏,否则创建一个新的菜单栏),并且可以使用^ {CD6>}循环它的内容,与任何QWIDGET一样:
建议:避免使用大写的对象名称;通常(不仅仅是Python)只对类和常量使用大写名称,因为这种做法提高了可读性,因为更容易区分类/常量和函数/变量。
相关问题 更多 >
编程相关推荐