Python PyQt组合框,提取用户拾取的数据

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

我试图从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
    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