Python 尝试从组合框的字典中获取值并在文本编辑中插入键

Python 尝试从组合框的字典中获取值并在文本编辑中插入键,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,我有一个字典和一个显示字典值的组合框,我需要在文本中打印编辑用户选择的字典值的键。 这是我的密码 import sys from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QApplication, QDialog, QMainWindow from PyQt5.uic import loadUi from math import pi class MainPage(QMainWindow): classi =

我有一个字典和一个显示字典值的组合框,我需要在文本中打印编辑用户选择的字典值的键。 这是我的密码

import sys
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QApplication, QDialog, QMainWindow
from PyQt5.uic import loadUi
from math import pi

class MainPage(QMainWindow):

    classi = {None : None, "C25/30" : float(14.17), 
        "C28/35" : float(15.87), "C32/40" : float(18.13), 
        "C35/45" : float(19.83), "C40/50" : float(22.6),
        "C45/55" : float(25.5), "C50/60" : float(28.3)}

    Acciaio = {None : None, "B450C" : float(391.3)}

    Ferri = {14 : float(1.54), 16 : float(2.01),
         18 : float(2.54), 20 : float(3.14), 22 : float(3.8)}

    N = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    def __init__(self):
        super(MainPage, self).__init__()
        loadUi('Concrete.ui', self)
        x = self.fillCombobox()
        y = self.fillCombobox_2()
        z = self.fillCombobox_3()
        v = self.fillCombobox_4()
        w = self.fillCombobox_5()
        a = self.fillCombobox_6()
        b = self.fillCombobox_7()
        c = self.fillCombobox_8()


    def fillCombobox(self):
        for i in self.classi:
            self.comboBox.addItem(i)


    def fillCombobox_2(self):
        for i in self.Acciaio:
            self.comboBox_2.addItem(i)

    def retrieveText(self):
        x = self.comboBox.currentData()
        self.textEdit.setText(x)


app = QApplication(sys.argv)
widget = MainPage()
widget.show()
sys.exit(app.exec_())

我知道函数retrieveText不能满足我的需要,但它只是一次尝试,而且没有任何输出。

您必须通过itemData保存与键相关的值,并在选择某个项时获取该值

class主页面(QMainWindow):
classi={
无:无,,
“C25/30”:14.17,
“C28/35”:15.87,
“C32/40”:18.13,
“C35/45”:19.83,
“C40/50”:22.6,
“C45/55”:25.5,
“C50/60”:28.3,
}
定义初始化(自):
超级(主页,自我)。\uuuu初始化
loadUi(“Concrete.ui”,self)
self.comboBox.currentIndexChanged[int].connect(self.retrieveText)
self.fillCombobox()
def FILLCOMBOX(自身):
对于键,self.classi.items()中的值:
self.comboBox.addItem(键、值)
@pyqtSlot(int)
def retrieveText(自身,索引):
x=self.comboBox.itemData(索引)
如果x不是无:
self.textEdit.setText(str(x))