我有一个通过for循环生成的动态qmenu。我已经把它分解成最基本的性质。我想知道的是,是否可以创建一个自定义的QMenuItem,以便在每个菜单项中存储一个实际对象?目前只支持字符串作为名称。在
如何在菜单项中存储其他数据/信息?在
我想像normal一样设置显示文本,然后在for循环中为每个项添加一个类对象或某种类型的数据。我把伪代码放在for循环中,但它被注释掉了。。在
我以为我可以通过创建一个自定义的QAction项并从QAction继承而接近,但是当尝试使用这个时,似乎没有起作用。。。在
class ActionObject( QtGui.QAction ):
def __init__( self, text="", parent=None ):
super( ActionObject, self ).__init__( parent )
self.data = None
^{pr2}$
当然,正如Achayan所回答的那样,您可以使用
QAction
的setData()
来设置额外的数据,data()
来获取存储的数据。在但是,上面的内容将解决您的问题,让我们看看扩展QAction。}。在
QWidget
,QMenu
基于并实现了允许传递QAction
对象的{父对象已经被显式设置,因为它是}。在
QWidget
的实现,而不是{这就是PyQt/Pyside允许在几乎所有地方使用自定义对象的方式,而无需使用monkey补丁。在
你可以简单地使用setData来设置数据,下面是一个有效的例子,我改变了你的代码位
相关问题 更多 >
编程相关推荐