簡體   English   中英

pyqt5-如何從函數向QComboBox添加值

[英]pyqt5 - How to add value to QComboBox fromfunction

我嘗試使用“ activated.connect()”方法從函數“ get_devices”將項添加到QComboBox(代碼中的deviceBox),但是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)

QCombBox對象具有一個名為addItem ,該方法可以將項目追加到QCombBox項目列表中。

因此您需要在最后一行中修改代碼。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM