Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何自动选择所有QTreeWidgetItem小部件_Python_Pyqt - Fatal编程技术网

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小部件表单current
QTreeWidgetItem
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_())
项目点击方法参考


问候,