pyqt5 - Как добавить значение в функцию QComboBox из функции

Я пытаюсь добавить элементы в QComboBox (deviceBox в моем коде) из функции "get_devices", используя метод activ.connect(), но QComboBox пуст. Где я ошибся?

#!/usr/bin/env python3

from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox, QFileDialog
from PyQt5.QtCore import pyqtSignal, pyqtSlot
from mainwindow import *
import sys
import pyudev


class MainProg (QMainWindow, Ui_MainWindow):

    file_open = pyqtSignal(str, str)

    def  __init__(self,  window):
        QMainWindow.__init__(self)
        self.setupUi(window)

        self.openisoButton.clicked.connect(self.openISO)
        self.aboutButton.clicked.connect(self.about)
        self.deviceBox.activated.connect(self.get_devices)

    def get_devices(self):
        devices = []
        context = pyudev.Context()
        for device in context.list_devices(subsystem='block', ID_BUS="usb"):
            devices.append(str(device['DEVNAME']))

        self.deviceBox.addItems(devices)

1 ответ

Решение

QCombBox объект имеет метод с именем addItem который может добавить элемент к существующему списку элементов.

поэтому вам нужно изменить код в последней строке.

for device in devices: self.deviceBox.addItem(device)

Другие вопросы по тегам