gpt4 book ai didi

python - Pyqt - 如何因另一个组合框数据而更改组合框数据?

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:02 24 4
gpt4 key购买 nike

我有一个表,有 4 列。这 4 列中有两列是关于功能的。一个是特征,另一个是子特征。在每一列中,所有单元格都有组合框。我可以在这些单元格中打开 txt。我想:当我选择电影作为特色时,我只想看到子特征组合框中的电影名称,而不是我的“数据”中的每个子特征......当我选择特色食物时,我只想看到我的子功能组合框中的食物类型...

.. 我不知道该怎么做...有办法吗?

这里有我的 def 将组合框放入表中并将文本文件打开到这些组合框中:

def createEd(self, parent, option, index):
if index.column() == POLARITY:
combobox = QComboBox(parent)
combobox.addItems(sorted(index.model().TPolarities))
combobox.setEditable(True)
arquivo = codecs.open("ln2.txt",encoding='utf-8',mode="r")
conTWordsdo = arquivo.readlines()
lista =[]
for i in conTWordsdo:
lista.append(i.replace("\n",""))
combobox.addItems(sorted(lista))
return combobox
elif index.column() == FEATURE:
combobox = QComboBox(parent)
combobox.addItems(sorted(index.model().TFeatures))
combobox.setEditable(True)
arquivo = codecs.open("ln1.txt",encoding='utf-8',mode="r")
conTWordsdo = arquivo.readlines()
lista = []
for i in conTWordsdo:
lista.append(i.replace("\n",""))
combobox.addItems(sorted(lista))
return combobox

elif index.column() == SUBFEATURE:
combobox = QComboBox(parent)
combobox.addItems(sorted(index.model().TSubFeatures))
combobox.setEditable(True)
arquivo = codecs.open("ln3.txt",encoding='utf-8',mode="r")
conTWordsdo = arquivo.readlines()
lista = []
for i in conTWordsdo:
lista.append(i.replace("\n",""))
combobox.addItems(sorted(lista))
return combobox

elif index.column() == SENTENCE:
editor = QLineEdit(parent)
self.connect(editor, SIGNAL("returnPressed()"), self.commitAndCloseEditor)
return editor
else:
return QItemDelegate.createEditor(self, parent, option, index)

最佳答案

您将使用 currentIndexChanged信号,像这样:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from PyQt4 import QtGui, QtCore

class MyWindow(QtGui.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)

self.items = dict(zip(
[ "Parent {0}".format(x)
for x in range(3)
],
[
[ "Child {0} - {1}".format(x, y)
for y in range(3)
]
for x in range(3)
]
))

self.comboBoxChild = QtGui.QComboBox(self)

self.comboBoxParent = QtGui.QComboBox(self)
self.comboBoxParent.addItems(self.items.keys())
self.comboBoxParent.currentIndexChanged[str].connect(self.on_comboBoxParent_currentIndexChanged)
self.comboBoxParent.setCurrentIndex(1)

self.layoutVertical = QtGui.QVBoxLayout(self)
self.layoutVertical.addWidget(self.comboBoxParent)
self.layoutVertical.addWidget(self.comboBoxChild)

@QtCore.pyqtSlot(str)
def on_comboBoxParent_currentIndexChanged(self, index):
items = self.items[str(index)]

self.comboBoxChild.clear()
self.comboBoxChild.addItems(items)

if __name__ == "__main__":
import sys

app = QtGui.QApplication(sys.argv)
app.setApplicationName('MyWindow')

main = MyWindow()
main.show()
main.resize(222, 111)

sys.exit(app.exec_())

关于python - Pyqt - 如何因另一个组合框数据而更改组合框数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16285729/

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