Отображение изображений согласно выбранной строке в QComboBox
Необходимо отобразить изображение согласно выбранной строке в QComboBox
.
Добавил код взаимодействия, стал появляться просто серый экран.
Что должно быть прикрепляю на изображениях:
main.py:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(1148, 589)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(840, 0, 341, 31))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(20)
self.label.setFont(font)
self.label.setStyleSheet("background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:1 rgba(255, 0, 0, 245))")
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(-10, 0, 1161, 591))
self.label_2.setStyleSheet("background-color: qconicalgradient(cx:0.5, cy:0.5, angle:134.2, stop:0 rgba(255, 0, 0, 245), stop:0.619318 rgba(0, 0, 255, 232));")
self.label_2.setText("")
self.label_2.setObjectName("label_2")
self.spinBox_2 = QtWidgets.QSpinBox(Form)
self.spinBox_2.setGeometry(QtCore.QRect(590, 540, 71, 41))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(36)
self.spinBox_2.setFont(font)
self.spinBox_2.setStyleSheet("\n"
"font: 36pt \"GOST type B\";\n"
"color:#fff;\n"
"background-color:rgb(0, 0, 255);")
self.spinBox_2.setObjectName("spinBox_2")
self.label_3 = QtWidgets.QLabel(Form)
self.label_3.setGeometry(QtCore.QRect(420, 0, 411, 31))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(20)
self.label_3.setFont(font)
self.label_3.setStyleSheet("background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:1 rgba(255, 0, 0, 245))")
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(Form)
self.label_4.setGeometry(QtCore.QRect(390, 500, 481, 31))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(20)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.label_4.setFont(font)
self.label_4.setStyleSheet("\n"
"font: 20pt \"GOST type B\";\n"
"color:#fff;\n"
"background-color:rgb(0, 0, 255);")
self.label_4.setObjectName("label_4")
self.comboBox = QtWidgets.QComboBox(Form)
self.comboBox.setGeometry(QtCore.QRect(850, 30, 291, 41))
self.comboBox.addItem("Тип ")
self.comboBox.addItem("Тип")
self.comboBox.addItem("С о")
self.comboBox.addItem("С ")
self.comboBox.addItem("Ти")
self.comboBox.addItem("Т")
self.comboBox.addItem("С")
self.comboBox.addItem("Б")
self.comboBox.currentIndexChanged.connect(self.update_image) # Connect the signal to update_image
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(18)
self.comboBox.setFont(font)
self.comboBox.setStyleSheet("background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:1 rgba(255, 0, 0, 245))")
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.spinBox_3 = QtWidgets.QSpinBox(Form)
self.spinBox_3.setGeometry(QtCore.QRect(590, 30, 71, 41))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(36)
self.spinBox_3.setFont(font)
self.spinBox_3.setStyleSheet("background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:1 rgba(255, 0, 0, 245))")
self.spinBox_3.setObjectName("spinBox_3")
self.label_6 = QtWidgets.QLabel(Form)
self.label_6.setGeometry(QtCore.QRect(0, 110, 291, 31))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(18)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.label_6.setFont(font)
self.label_6.setStyleSheet("\n"
"font: 18pt \"GOST type B\";\n"
"color:#fff;\n"
"background-color:rgb(0, 0, 255);")
self.label_6.setObjectName("label_6")
self.lineEdit_11 = QtWidgets.QLineEdit(Form)
self.lineEdit_11.setGeometry(QtCore.QRect(80, 150, 81, 41))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(18)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.lineEdit_11.setFont(font)
self.lineEdit_11.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.lineEdit_11.setLayoutDirection(QtCore.Qt.LeftToRight)
self.lineEdit_11.setStyleSheet("\n"
"font: 18pt \"GOST type B\";\n"
"color:#fff;\n"
"background-color:rgb(0, 0, 255);")
self.lineEdit_11.setText("")
self.lineEdit_11.setObjectName("lineEdit_11")
self.label_7 = QtWidgets.QLabel(Form)
self.label_7.setGeometry(QtCore.QRect(0, 0, 411, 31))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(18)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.label_7.setFont(font)
self.label_7.setStyleSheet("background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:1 rgba(255, 0, 0, 245))")
self.label_7.setObjectName("label_7")
self.lineEdit_12 = QtWidgets.QLineEdit(Form)
self.lineEdit_12.setGeometry(QtCore.QRect(80, 40, 81, 41))
font = QtGui.QFont()
font.setFamily("GOST Type BU")
font.setPointSize(28)
self.lineEdit_12.setFont(font)
self.lineEdit_12.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.lineEdit_12.setLayoutDirection(QtCore.Qt.LeftToRight)
self.lineEdit_12.setStyleSheet("background:qconicalgradient(cx:0.5, cy:0.5, angle:315.3, stop:0 rgba(255, 0, 0, 255), stop:1 rgba(0, 0, 255, 255))")
self.lineEdit_12.setText("")
self.lineEdit_12.setObjectName("lineEdit_12")
self.label_8 = QtWidgets.QLabel(Form)
self.label_8.setGeometry(QtCore.QRect(0, 220, 411, 31))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(18)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.label_8.setFont(font)
self.label_8.setStyleSheet("\n"
"font: 18pt \"GOST type B\";\n"
"color:#fff;\n"
"background-color:rgb(0, 0, 255);")
self.label_8.setObjectName("label_8")
self.lineEdit_13 = QtWidgets.QLineEdit(Form)
self.lineEdit_13.setGeometry(QtCore.QRect(80, 260, 81, 41))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(18)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.lineEdit_13.setFont(font)
self.lineEdit_13.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.lineEdit_13.setLayoutDirection(QtCore.Qt.LeftToRight)
self.lineEdit_13.setStyleSheet("\n"
"font: 18pt \"GOST type B\";\n"
"color:#fff;\n"
"background-color:rgb(0, 0, 255);")
self.lineEdit_13.setText("")
self.lineEdit_13.setObjectName("lineEdit_13")
self.label_9 = QtWidgets.QLabel(Form)
self.label_9.setGeometry(QtCore.QRect(0, 330, 521, 31))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(18)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.label_9.setFont(font)
self.label_9.setStyleSheet("\n"
"font: 18pt \"GOST type B\";\n"
"color:#fff;\n"
"background-color:rgb(0, 0, 255);")
self.label_9.setObjectName("label_9")
self.lineEdit_14 = QtWidgets.QLineEdit(Form)
self.lineEdit_14.setGeometry(QtCore.QRect(80, 370, 81, 41))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(18)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.lineEdit_14.setFont(font)
self.lineEdit_14.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.lineEdit_14.setLayoutDirection(QtCore.Qt.LeftToRight)
self.lineEdit_14.setStyleSheet("\n"
"font: 18pt \"GOST type B\";\n"
"color:#fff;\n"
"background-color:rgb(0, 0, 255);")
self.lineEdit_14.setText("")
self.lineEdit_14.setObjectName("lineEdit_14")
self.label_10 = QtWidgets.QLabel(Form)
self.label_10.setGeometry(QtCore.QRect(0, 440, 611, 31))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(18)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.label_10.setFont(font)
self.label_10.setStyleSheet("\n"
"font: 18pt \"GOST type B\";\n"
"color:#fff;\n"
"background-color:rgb(0, 0, 255);")
self.label_10.setObjectName("label_10")
self.lineEdit_15 = QtWidgets.QLineEdit(Form)
self.lineEdit_15.setGeometry(QtCore.QRect(80, 480, 81, 41))
font = QtGui.QFont()
font.setFamily("GOST type B")
font.setPointSize(18)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.lineEdit_15.setFont(font)
self.lineEdit_15.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.lineEdit_15.setLayoutDirection(QtCore.Qt.LeftToRight)
self.lineEdit_15.setStyleSheet("\n"
"font: 18pt \"GOST type B\";\n"
"color:#fff;\n"
"background-color:rgb(0, 0, 255);")
self.lineEdit_15.setText("")
self.lineEdit_15.setObjectName("lineEdit_15")
self.label_2.raise_()
self.label.raise_()
self.spinBox_2.raise_()
self.label_3.raise_()
self.label_4.raise_()
self.comboBox.raise_()
self.spinBox_3.raise_()
self.label_6.raise_()
self.lineEdit_11.raise_()
self.label_7.raise_()
self.lineEdit_12.raise_()
self.label_8.raise_()
self.lineEdit_13.raise_()
self.label_9.raise_()
self.lineEdit_14.raise_()
self.label_10.raise_()
self.lineEdit_15.raise_()
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "ВЫБЕРИТЕ ТИП :"))
self.label_3.setText(_translate("Form", "Укажите количество человек Д:"))
self.label_4.setText(_translate("Form", "Укажите количество человек о:"))
self.comboBox.setItemText(0, _translate("Form", "Тип "))
self.comboBox.setItemText(1, _translate("Form", "Тип"))
self.comboBox.setItemText(2, _translate("Form", "С о"))
self.comboBox.setItemText(3, _translate("Form", "С "))
self.comboBox.setItemText(4, _translate("Form", "Ти"))
self.comboBox.setItemText(5, _translate("Form", "Т"))
self.comboBox.setItemText(6, _translate("Form", "С"))
self.comboBox.setItemText(7, _translate("Form", "Б"))
self.label_6.setText(_translate("Form", "Вероятность отхода равна:"))
self.label_7.setText(_translate("Form", "Эффективность 2 "))
self.label_8.setText(_translate("Form", "Эффективность"))
self.label_9.setText(_translate("Form", "Вероятность работоспособности машин охранения"))
self.label_10.setText(_translate("Form", "Вероятность продолжения марша колонны после нападения"))
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(800, 600)
self.comboBox = QtWidgets.QComboBox(Form)
self.comboBox.setGeometry(QtCore.QRect(850, 30, 291, 41))
self.comboBox.addItem("Тип ")
self.comboBox.addItem("Тип")
self.comboBox.addItem("С о")
self.comboBox.addItem("С ")
self.comboBox.addItem("Ти")
self.comboBox.addItem("Т")
self.comboBox.addItem("С")
self.comboBox.addItem("Б")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(210, 20, 400, 300))
self.label_2.setObjectName("label_2")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
def update_image(self, index):
image_path = ""
if index == 0:
image_path = "L.png"
elif index == 1:
image_path = "V.png"
elif index == 2:
image_path = "M.png"
pixmap = QtGui.QPixmap(image_path)
scaled_pixmap = pixmap.scaled(400, 300, QtCore.Qt.AspectRatioMode.KeepAspectRatio)
self.label_2.setPixmap(scaled_pixmap)
self.label_2.setScaledContents(True)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
ui.comboBox.currentIndexChanged.connect(ui.update_image) # Connect the signal to update_image
Form.show()
sys.exit(app.exec_())
Источник: Stack Overflow на русском