Получение данных через QLineEdit и их вывод в QComboBox

Учусь работать с базами данных sqlite и подключать их к python приложению с использованием библиотеки PyQt5. Есть задача: Имеется QComboBox, в котором есть несколько вариантов выбора блюда (код комбобокса будет приведён ниже). Допустим пользователь выбрал вариант "Пицца", в одном QLabel выведет картинку с этим блюдом, в другом QLabel выведет состав блюда и его КБЖУ (Калории, белки, жиры и углеводы). <- ЭТА ЧАСТЬ КОДА СДЕЛАНА
Теперь то, зачем я задаю вопрос:
Нужно добавить QLineEdit (или несколько лайнэдитов), туда пользователь будет вводить название блюда, его состав и КБЖУ, а также загружать изображение только 211 пикселей на 151. После, надо, чтобы это блюдо добавлялось в QComboBox с блюдами и выводилось также, как и другие, добавленные через код. (в начале вопроса я написал про sqlite, так как, возможно, с его помощью, осуществить данную задачу будет проще)
Я не прошу написать всё это кодом ( хотя было-бы неплохо :) ), объясните мне, пожалуйста, как реализовать эту задачу

Учусь работать с базами данных sqlite и подключать их к python приложению с использованием библиотеки PyQt5.

Код QComboBox с выбором блюд и выводом картинки и состава с КБЖУ:
text_for_dishes_lib - функция с qlabel с информацией о библиотеке блюд (комбобокс с выводом блюда)
NazvanieBluda - qlabel с названием блюда
ComboViborBluda - combobox с вариантами выбора блюда
label_2 - qlabel, в котором выводится состав и КБЖУ выбранного блюда
photo - qlabel, в котором выводится картинка блюда

import sys
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QMainWindow

from first_project.examples.design_example import Ui_MainWindow


class WayToTheDream(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        # настройки окна
        self.setWindowTitle('Way To The Dream!')
        self.setFixedSize(1010, 546)
        # запуск и условия для запуска | библиотека блюд
        self.text_for_dishes_lib()
        self.NazvanieBluda.setGeometry(QtCore.QRect(280, 350, 180, 21))
        self.ComboViborBluda.activated.connect(self.dish_lib)
        self.ComboViborBluda.activated.connect(self.set_image)
        # при выборе блюда из комбобокса, текст лэйбла меняется на название блюда
        self.ComboViborBluda.textActivated.connect(self.NazvanieBluda.setText)

        # информация о библиотеке блюд

    def text_for_dishes_lib(self):
        self.TextBluda.setText(
            "<html><head/><body><p>||Библиотека блюд.<br>||<br> ||Вы можете выбрать<br> ||блюдо из "
            "выпадающего<br> ||списка и увидеть его<br> ||описание и "
            "картинку!<br>\/</p></body></html>")

    # логика библиотеки блюд

    def dish_lib(self):
        if self.ComboViborBluda.currentText() == 'Гамбургер':
            self.label_2.setText(
                '<html><head><body><p>Состав:<br>Булочка, Говяжья котлета,<br>Кетчуп, Горчица,<br>Лук, Огурцы '
                'маринованные<br>Приправа для гриля<br><br>КБЖУ - 257Ккал, 14г, 8,6г<br>29г.</p></body></head></html>')
        elif self.ComboViborBluda.currentText() == 'Пицца':
            self.label_2.setText(
                '<html><head><body><p>Состав:<br>Среднестатистическая <br>пицца:<br>Тесто, овощи, мясо,<br>Сыр, Соусы'
                '<br><br>Среднее КБЖУ - <br>340Ккал на кусок пиццы,<br>10г, 14г, 30г.</p></body></head></html>')
        elif self.ComboViborBluda.currentText() == 'Салат "Цезарь"':
            self.label_2.setText(
                '<html><head><body><p>Состав:<br>Листовый салат, <br>Сыр "Пармезан",<br>Сухарики пшеничные, '
                '<br>Соус "Цезарь"<br><br>КБЖУ - 375Ккал на порцию, 7,4г,<br>9г, 11г.</p></body></head></html>')
        elif self.ComboViborBluda.currentText() == 'Салат "Греческий"':
            self.label_2.setText(
                '<html><head><body><p>Состав:<br>Помидоры, Перец болг.<br>Огурцы, Лук, Брынза,<br>Маслины, Соус<br>'
                '<br>КБЖУ - 877Ккал на порцию,<br>25г, 64г, 41г. </p></body></head></html>')
        elif self.ComboViborBluda.currentText() == 'Картошка Фри':
            self.label_2.setText(
                '<html><head><body><p>Состав:<br>Картошка.<br><br>КБЖУ - 274Ккал, 3,48г,<br>35,66г, 14,06г</p></body>'
                '</head></html>')
        elif self.ComboViborBluda.currentText() == 'Картошка по-деревенски (Айдахо)':
            self.label_2.setText(
                '<html><head><body><p>Состав:<br>Картошка<br><br>КБЖУ - 331Ккал, 4.6г, <br>15г, 42г.</p></body></head>'
                '</html>')
        elif self.ComboViborBluda.currentText() == 'Наггетсы':
            self.label_2.setText(
                '<html><head><body><p>Состав:<br>Котлеты куриные<br><br>КБЖУ - 440Ккал, 25г,<br>21г, 28г.</p></body>'
                '</head></html>')
        elif self.ComboViborBluda.currentText() == 'Крылышки':
            self.label_2.setText(
                '<html><head><body><p>Состав:<br>Куриные крылья, Специи<br><br>КБЖУ - 487Ккал на одно крыло,<br>28,4г,'
                ' 31,5г, 22,5г.</p></body></head></html>')
        else:
            self.label_2.clear()

        # функция, которая ставит фото на место лэйбла, в зависимости от того, какое блюдо выбрал пользователь

    def set_image(self):
        burger = QPixmap("")  # внутри кавычек указан путь к нужной картинке, я убрал, так как для поставленной задачи
        pizza = QPixmap("")  # это не нужно.
        cezar = QPixmap("")  # фотографии пользователья должны сохранятся в папку 'photos_for_project'
        grec = QPixmap("")  # размер фото - 211 пикселей на 151 пиксель
        free = QPixmap("")
        aydaho = QPixmap("")
        naggetsy = QPixmap("")
        wings = QPixmap("")
        if self.ComboViborBluda.currentText() == 'Гамбургер':
            self.photo.setPixmap(burger)
        elif self.ComboViborBluda.currentText() == 'Пицца':
            self.photo.setPixmap(pizza)
        elif self.ComboViborBluda.currentText() == 'Салат "Цезарь"':
            self.photo.setPixmap(cezar)
        elif self.ComboViborBluda.currentText() == 'Салат "Греческий"':
            self.photo.setPixmap(grec)
        elif self.ComboViborBluda.currentText() == 'Картошка Фри':
            self.photo.setPixmap(free)
        elif self.ComboViborBluda.currentText() == 'Картошка по-деревенски (Айдахо)':
            self.photo.setPixmap(aydaho)
        elif self.ComboViborBluda.currentText() == 'Наггетсы':
            self.photo.setPixmap(naggetsy)
        elif self.ComboViborBluda.currentText() == 'Крылышки':
            self.photo.setPixmap(wings)
        else:
            self.photo.clear()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = WayToTheDream()
    ex.show()
    sys.exit(app.exec_())

design_example (дизайн):

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1010, 546)
        MainWindow.setStyleSheet("background-color: #F0F0F0;")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.ComboViborBluda = QtWidgets.QComboBox(self.centralwidget)
        self.ComboViborBluda.setGeometry(QtCore.QRect(60, 310, 211, 22))
        self.ComboViborBluda.setObjectName("ComboViborBluda")
        self.ComboViborBluda.addItem("")
        self.ComboViborBluda.addItem("")
        self.ComboViborBluda.addItem("")
        self.ComboViborBluda.addItem("")
        self.ComboViborBluda.addItem("")
        self.ComboViborBluda.addItem("")
        self.ComboViborBluda.addItem("")
        self.ComboViborBluda.addItem("")
        self.ComboViborBluda.addItem("")
        self.ViborBludaText = QtWidgets.QLabel(self.centralwidget)
        self.ViborBludaText.setGeometry(QtCore.QRect(60, 290, 391, 16))
        self.ViborBludaText.setObjectName("ViborBludaText")
        self.NazvanieBluda = QtWidgets.QLabel(self.centralwidget)
        self.NazvanieBluda.setGeometry(QtCore.QRect(280, 350, 171, 21))
        self.NazvanieBluda.setObjectName("NazvanieBluda")
        self.TextBluda = QtWidgets.QLabel(self.centralwidget)
        self.TextBluda.setGeometry(QtCore.QRect(70, 30, 241, 171))
        self.TextBluda.setObjectName("TextBluda")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(280, 370, 171, 131))
        self.label_2.setText("")
        self.label_2.setObjectName("label_2")
        self.photo = QtWidgets.QLabel(self.centralwidget)
        self.photo.setGeometry(QtCore.QRect(60, 350, 211, 151))
        self.photo.setText("")
        self.photo.setObjectName("photo")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1010, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.ComboViborBluda.setItemText(0, _translate("MainWindow", "*Блюдо не выбрано*"))
        self.ComboViborBluda.setItemText(1, _translate("MainWindow", "Гамбургер"))
        self.ComboViborBluda.setItemText(2, _translate("MainWindow", "Пицца"))
        self.ComboViborBluda.setItemText(3, _translate("MainWindow", "Салат \"Цезарь\""))
        self.ComboViborBluda.setItemText(4, _translate("MainWindow", "Салат \"Греческий\""))
        self.ComboViborBluda.setItemText(5, _translate("MainWindow", "Картошка Фри"))
        self.ComboViborBluda.setItemText(6, _translate("MainWindow", "Картошка по-деревенски (Айдахо)"))
        self.ComboViborBluda.setItemText(7, _translate("MainWindow", "Наггетсы"))
        self.ComboViborBluda.setItemText(8, _translate("MainWindow", "Крылышки"))
        self.ViborBludaText.setText(_translate("MainWindow", "Выберите блюдо, чтобы узнать его БЖУ:"))
        self.NazvanieBluda.setText(_translate("MainWindow", "Название блюда"))
        self.TextBluda.setText(
            _translate("MainWindow", "<html><head/><body><p>Текст для библиотеки блюд</p></body></html>"))


Ответы (0 шт):