Python PyQt组合框,提取用户拾取的数据
我试图从qcombobox访问当前项目 我已经创建了一个包含列表中动态项的组合框Python PyQt组合框,提取用户拾取的数据,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,我试图从qcombobox访问当前项目 我已经创建了一个包含列表中动态项的组合框 self.combo = QtGui.QComboBox() for itm in self.ctpc: itms = str(itm) # [1:-2] removes '<' and '>' from beginning and end self.combo.addItem(itms[1:-1], userData=unicode(itm)) print itm
self.combo = QtGui.QComboBox()
for itm in self.ctpc:
itms = str(itm)
# [1:-2] removes '<' and '>' from beginning and end
self.combo.addItem(itms[1:-1], userData=unicode(itm))
print itm
print ("cut_items_ordered: ", itm.cut_items_ordered)
print ("Version: {} \n".format(itm.version))
编辑:
新代码看起来像
for itm in self.ctpc:
self.itms = str(itm)
# [1:-2] removes '<' and '>' from beginning and end
self.combo.insertItem(0, self.itms[1:-1])
self.combo.setItemData(0, unicode(itm))
self.combo.setItemData(0, unicode(itm.cut_items_ordered))
self.combo.setItemData(0, unicode(itm.version))
在这里,我希望能够访问itm.cut\u items\u中的所有数据,例如,由itm.cut\u self订购的数据和由itm.cut\u self订购的数据。您可以通过
currentText()
获取组合框的当前文本。当前数据通过itemAt(currentIndex())
接收。PyQt5有一个快捷方式:currentData()
。谢谢,@a_guest我回到合适的计算机后会看一看。再次向@a_guest问好。这很有效。但这是一种为特定项目添加多个数据的方法吗。self.combo.insertItem(0,self.itms[1:-1])self.combo.setItemData(0,unicode(itm))self.combo.setItemData(0,unicode(itm.cut_items_order))以及以后访问特定数据时?我不确定您想要实现什么。你能说得更具体些吗?如果您想在按下按钮时做出反应,可以将其单击的
事件连接到自定义函数:按钮。单击。连接(自定义功能)
。或者将插槽传递给init方法:QPushButton(…,clicked=custom\u function)
。您可以通过currentText()
获取组合框的当前文本。当前数据通过itemAt(currentIndex())
接收。PyQt5有一个快捷方式:currentData()
。谢谢,@a_guest我回到合适的计算机后会看一看。再次向@a_guest问好。这很有效。但这是一种为特定项目添加多个数据的方法吗。self.combo.insertItem(0,self.itms[1:-1])self.combo.setItemData(0,unicode(itm))self.combo.setItemData(0,unicode(itm.cut_items_order))以及以后访问特定数据时?我不确定您想要实现什么。你能说得更具体些吗?如果您想在按下按钮时做出反应,可以将其单击的
事件连接到自定义函数:按钮。单击。连接(自定义功能)
。或者将插槽传递给init方法:QPushButton(…,clicked=custom\u函数)
。
[<CutItem A012C012_161202_R0FS>, <CutItem A019C007_161203_R0FS>, <CutItem A009C003_161202_R0FS>])
for i in range(self.combo.count()):
itmData = self.combo.itemData(i)
comboIndex = self.combo.currentIndex()
if comboIndex == itmData:
print self.combo.currentText()
for itm in self.ctpc:
self.itms = str(itm)
# [1:-2] removes '<' and '>' from beginning and end
self.combo.insertItem(0, self.itms[1:-1])
self.combo.setItemData(0, unicode(itm))
self.combo.setItemData(0, unicode(itm.cut_items_ordered))
self.combo.setItemData(0, unicode(itm.version))
def btn_accepted(self)
for i in range(self.combo.count()):
self.itmData = self.combo.itemData(self.combo.currentIndex())
print self.itmData