gpt4 book ai didi

python - 如何访问 QTreeWidget 中当前的 QComboBox 数据

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:40 25 4
gpt4 key购买 nike

我在这个上使用 PySide。我似乎无法访问嵌入树小部件中的组合框中的当前文本。我能得到的是最后创建的组合框的当前文本。需要注意的是,在我的主程序中,这些组合框将动态生成,因此不会有固定的数量。因此无法建立唯一标识符。

import sys
from PySide import QtCore
from PySide import QtGui

class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.di = {"name":["Bill", "Dan", "Steve"], "age":["45","21","78"]}
self.initUI()
self.populateTree()

def initUI(self):
self.tree = QtGui.QTreeWidget()
self.tree.setColumnCount(1)
self.setCentralWidget(self.tree)
self.setGeometry(300, 300, 350, 250)
self.setWindowTitle('Main window')
self.show()

def populateTree(self):
# Add widget item to tree
for key, value in self.di.iteritems():
item1 = QtGui.QTreeWidgetItem()
item1.setText(0, key)
item1.setExpanded(True)
self.tree.addTopLevelItem(item1)
# Add Combo Box to widget item
item2 = QtGui.QTreeWidgetItem(item1)
combo = QtGui.QComboBox(self.tree)
combo.addItems(value)
self.tree.setItemWidget(item2, 0, combo)
combo.currentIndexChanged.connect(lambda: self.doSomething(combo.currentText()))

def doSomething(self, n):
print n

def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

if __name__ == '__main__':
main()

最佳答案

使用默认参数缓存当前实例:

combo.currentIndexChanged.connect(
lambda index, combo=combo: self.doSomething(combo.currentText()))

关于python - 如何访问 QTreeWidget 中当前的 QComboBox 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40182780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com