2016-11-17 9 views
0

Итак, я разработал этот графический интерфейс для работы, но у меня возникли проблемы с подключением моего QcomboBox к нескольким различным слотам в зависимости от ввода пользователем. По сути, я хочу, чтобы пользователь мог выбрать диск из QcomboBox, затем нажать QpushButton и автоматически перейти на сетевой диск.PYQT QpushButton с подключением многослотов QcomboBox

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:/')  
+0

Необходимо попытаться изменить данные, полученные от щелчка на currentIndexChanged – Achayan

ответ

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) 
+0

Большое вам спасибо @ Brendan Abel! Это сработало отлично. –

 Смежные вопросы

  • Нет связанных вопросов^_^