在 PySide 中单击的 QMenu 项目的打印文本
Print text of QMenu item clicked in PySide
如何打印在 pyside 菜单中单击的菜单项的显示文本?
import sys
import os
from PySide import QtGui, QtCore
from PySide import QtGui as QtWidgets
class MyTool(QtWidgets.QWidget):
def __init__(self,parent=None, path=None):
super(MyTool, self).__init__(parent)
self.resize(300,200)
# controls
self.ui_filters = QtGui.QToolButton()
self.ui_filters.setText('Filters ')
main_layout = QtWidgets.QVBoxLayout()
main_layout.addWidget(self.ui_filters)
self.setLayout(main_layout)
# actions
self.create_actions()
# properties
def create_actions(self):
# filters menu
self.menu_filters = QtWidgets.QMenu(self)
filters = ['Asphalt','Ceramic','Concrete','Fabric','Ground','Granite','Leather']
for x in filters:
action = self.menu_filters.addAction(x)
self.ui_filters.setMenu(self.menu_filters)
self.ui_filters.setPopupMode(QtWidgets.QToolButton.InstantPopup)
# Main
# -----------------------------------------------------------------------------
def main():
app = QtWidgets.QApplication(sys.argv)
ex = MyTool()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
QMenu
有triggered
信号,这个returnsQAction
关联到按下的item,获取文本我们使用text()
方法QAction
的:
def create_actions(self):
# filters menu
self.menu_filters = QtWidgets.QMenu(self)
filters = ['Asphalt','Ceramic','Concrete','Fabric','Ground','Granite','Leather']
for x in filters:
action = self.menu_filters.addAction(x)
self.ui_filters.setMenu(self.menu_filters)
self.ui_filters.setPopupMode(QtWidgets.QToolButton.InstantPopup)
self.menu_filters.triggered.connect(self.onTriggered)
def onTriggered(self, action):
print(action.text())
如何打印在 pyside 菜单中单击的菜单项的显示文本?
import sys
import os
from PySide import QtGui, QtCore
from PySide import QtGui as QtWidgets
class MyTool(QtWidgets.QWidget):
def __init__(self,parent=None, path=None):
super(MyTool, self).__init__(parent)
self.resize(300,200)
# controls
self.ui_filters = QtGui.QToolButton()
self.ui_filters.setText('Filters ')
main_layout = QtWidgets.QVBoxLayout()
main_layout.addWidget(self.ui_filters)
self.setLayout(main_layout)
# actions
self.create_actions()
# properties
def create_actions(self):
# filters menu
self.menu_filters = QtWidgets.QMenu(self)
filters = ['Asphalt','Ceramic','Concrete','Fabric','Ground','Granite','Leather']
for x in filters:
action = self.menu_filters.addAction(x)
self.ui_filters.setMenu(self.menu_filters)
self.ui_filters.setPopupMode(QtWidgets.QToolButton.InstantPopup)
# Main
# -----------------------------------------------------------------------------
def main():
app = QtWidgets.QApplication(sys.argv)
ex = MyTool()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
QMenu
有triggered
信号,这个returnsQAction
关联到按下的item,获取文本我们使用text()
方法QAction
的:
def create_actions(self):
# filters menu
self.menu_filters = QtWidgets.QMenu(self)
filters = ['Asphalt','Ceramic','Concrete','Fabric','Ground','Granite','Leather']
for x in filters:
action = self.menu_filters.addAction(x)
self.ui_filters.setMenu(self.menu_filters)
self.ui_filters.setPopupMode(QtWidgets.QToolButton.InstantPopup)
self.menu_filters.triggered.connect(self.onTriggered)
def onTriggered(self, action):
print(action.text())