Python 如何自动选择所有QTreeWidgetItem小部件
此代码使用Python 如何自动选择所有QTreeWidgetItem小部件,python,pyqt,Python,Pyqt,此代码使用QComboBox和QLineEdit创建QTreeWidget(使用setItemWidget()方法)设置为itemWidget。 单击项目的名称(“项目1”、“项目2”等)将使项目“选中”,但其项目小部件保持取消选中状态。是否有任何QTreeWidgetItem标志或属性要设置,以便在单击项目时自动选择其所有项目小部件 from PyQt4 import QtCore, QtGui app = QtGui.QApplication([]) class Tree(QtGui.QT
QComboBox
和QLineEdit
创建QTreeWidget
(使用setItemWidget()
方法)设置为itemWidget
。
单击项目的名称(“项目1”、“项目2”等)将使项目“选中”,但其项目小部件保持取消选中状态。是否有任何QTreeWidgetItem
标志或属性要设置,以便在单击项目时自动选择其所有项目小部件
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
class Tree(QtGui.QTreeWidget):
def __init__(self, *args, **kwargs):
super(Tree, self).__init__()
for each in ['Item_1','Item_2','Item_3','Item_4','Item_5']:
item=QtGui.QTreeWidgetItem([each])
self.addTopLevelItem(item)
self.setItemWidget(item, 1, QtGui.QComboBox())
self.setItemWidget(item, 2, QtGui.QLineEdit())
self.setColumnCount(5)
self.resize(360,240)
self.show()
tree=Tree()
sys.exit(app.exec_())
单击项目时,您可以执行信号
void itemClicked(QTreeWidgetItem*,int)
,1其项目小部件将自动选择。在这种情况下,我会自动选择QLineEdit
首先,连接QTreeWidget
的信号void itemClicked(QTreeWidgetItem*,int)
。
最后,获取当前iten小部件表单currentQTreeWidgetItem
ans设置焦点
import sys
from PyQt4 import QtCore, QtGui
class Tree(QtGui.QTreeWidget):
ENUM_COMBOBOX = 1
ENUM_LINEEDIT = 2
def __init__(self, *args, **kwargs):
super(Tree, self).__init__()
for each in ['Item_1','Item_2','Item_3','Item_4','Item_5']:
item=QtGui.QTreeWidgetItem([each])
self.addTopLevelItem(item)
self.setItemWidget(item, self.ENUM_COMBOBOX, QtGui.QComboBox())
self.setItemWidget(item, self.ENUM_LINEEDIT, QtGui.QLineEdit())
self.setColumnCount(5)
self.resize(360,240)
self.show()
self.connect(self, QtCore.SIGNAL('itemClicked (QTreeWidgetItem *, int)'), self.itemClickedEvent)
def itemClickedEvent (self, currentQTreeWidgetItem, column):
currentQWidget = self.itemWidget(currentQTreeWidgetItem, self.ENUM_LINEEDIT)
currentQWidget.setFocus()
app = QtGui.QApplication([])
tree=Tree()
sys.exit(app.exec_())
项目点击方法参考:
问候,