PYQT QpushButton与QcomboBox多插槽连接

时间:2016-11-17 17:04:36

标签: python pyqt signals-slots qcombobox qpushbutton

所以我开发了这个GUI用于工作,但我无法将QcomboBox连接到多个不同的插槽,具体取决于用户输入。基本上,我希望用户能够从QcomboBox中选择一个驱动器,然后按下QpushButton并自动定向到网络驱动器。

screenshot

我已经在逻辑上摸不着头几天了。我知道代码的第二部分应该是这样的(也许?):

def retranslateUi(Self, MainWindow):
    self.btnGo.clicked.connect(self.DriverSelectClicked)

def DriverSelectClicked(self):
    if self.comboBox1.currentIndex() == 0:
       os.startfile('C:/')
    if self.comboBox1.currentIndex() == 1:
       os.startfile('Z:/')     

1 个答案:

答案 0 :(得分:1)

您应该直接从组合框中提取驱动路径信息。除了设置组合框条目的文本外,您还可以设置数据

drives = ['C:\\', 'Z:\\']
for drive in drives:
    text = '[{}] Disk Drive'.format(drive)
    self.comboBox1.addItem(text, drive)

然后,当您处理点击时,您可以只读取包含该驱动器的数据字段并直接使用该

def DriverSelectClicked(self):
    drive = self.comboBox1.itemData(self.comboBox1.currentIndex())
    if drive:
       os.startfile(drive)