@StivenHolland
Программист-самоучка

Как записать выбранное пользователем значение QComboBox в PyQt5?

import sys
import os

from PySide2.QtWidgets import QApplication, QWidget
from PySide2.QtCore import QFile
from PySide2.QtUiTools import QUiLoader


class Constructor(QWidget):
    def __init__(self):
        super(Constructor, self).__init__()
        self.load_ui()

    def load_ui(self):
        loader = QUiLoader()
        path = os.path.join(os.path.dirname(__file__), "form.ui")
        ui_file = QFile(path)
        ui_file.open(QFile.ReadOnly)
        loader.load(ui_file, self)
        ui_file.close()


if __name__ == "__main__":
    app = QApplication([])
    widget = Constructor()
    widget.setWindowTitle("Constructor")
    widget.show()
    sys.exit(app.exec_())

Я имею файл form.ui в той же директории, что и этот файл (main.py). В .ui файле я имею виджет ComboBox c именем "CBsettings". Как во время работы приложения записывать значения этого виджета? (значение, которое будет выбирать пользователь)
Надо как-то обратиться к классу виджета и на протяжении всей работы выуживать оттуда значения
Я искал очень долго, но нашел только способ, как найти адрес (не знаю, как потом его использовать)
Заранее спасибо!
  • Вопрос задан
  • 261 просмотр
Решения вопроса 1
@StivenHolland Автор вопроса
Программист-самоучка
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.uic import loadUi


class m(QWidget):
    def __init__(self):
        self.app = QApplication([])
        super().__init__()
        loadUi('form.ui', self)
        self.CBsettings.currentIndexChanged.connect(self.change)
        self.show()
        self.app.exec()

    def change(self, index):
        print(self.CBsettings.itemText(index))

m()

P.S. решение по комментарию l0cked
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы