如何解决Python:将条目添加到PyQt5菜单栏列表
我希望在PyQt5菜单栏中设置带有字符串列表的条目;列表可以更改。
strList = ["1","2","3","4" ]
self.action1 = QtWidgets.QAction(MainWindow)
self.action1.setobjectName("action1")
self.action2 = QtWidgets.QAction(MainWindow)
self.action2.setobjectName("action2")
self.action3 = QtWidgets.QAction(MainWindow)
self.action3.setobjectName("action3")
self.action4 = QtWidgets.QAction(MainWindow)
self.action4.setobjectName("action4")
self.menuBoards.addAction(self.action1)
self.menuBoards.addAction(self.action2)
self.menuBoards.addAction(self.action3)
self.menuBoards.addAction(self.action4)
self.menubar.addAction(self.menuBoards.menuAction())
不知道如何动态设置self.action,只是它应该像枚举循环一样,但不确定如何从ui(现在为py)文件返回MainWindow。
在主程序中,我认为...
import messageScriptUi
#lines later
for ix,name in enumerate(strList):
setattr(self,name,QtWidgets.QAction(MainWindow) )
#-------------help here?-------------------
self.menuBoards.addAction(self.action1)
#------------------------------------------
self.menubar.addAction(self.menuBoards.menuAction())
messageScriptUi文件的前几行是:
from PyQt5 import QtCore,QtGui,QtWidgets
from PyQt5.QtWidgets import QWidget,QMainWindow
class Ui_Form(QWidget):
# Start code to copy
def __init__(self,parent):
super(self.__class__,self).__init__()
self.parent = parent
self.setupUi(parent)
def setCentralWidget(self,something):
pass
def setupUi(self,MainWindow):
MainWindow.setobjectName("MainWindow")
解决方法
如果问题是关于动态创建操作,那么您就使用setattr
了。
for name in strList:
action = QtWidgets.QAction(MainWindow)
setattr(self,'action{}'.format(name),action)
self.menuBoards.addAction(action)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。