使用菜单时QToolButton
菜单显示在按钮的正下方。有没有办法在按钮的左侧/右侧显示菜单?
我知道这个问题不久前已得到回答,但我想为此问题添加新答案,因为接受的答案不再有效。实际上,更改 QToolButton 上的菜单位置非常容易。您需要子类化 QMenu 并重写事件函数。当有演出活动时,只需更改菜单的位置即可。
这是一个使用 PySide 的简单示例:
from PySide import QtCore, QtGui
class MyMenu(QtGui.QMenu):
def event(self,event):
if event.type() == QtCore.QEvent.Show:
self.move(self.parent().mapToGlobal(QtCore.QPoint(0,0))-QtCore.QPoint(0,self.height()))
return super(MyMenu,self).event(event)
if __name__ == "__main__":
app = QtGui.QApplication([])
w = QtGui.QWidget()
w.setGeometry(100,100,500,500)
tb = QtGui.QToolButton(w)
tb.setText("HELLO")
tb.setGeometry(70,70,40,30)
m = MyMenu("Menu",tb)
m.addAction("Exit")
tb.setMenu(m)
w.show()
app.exec_()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)