2016-07-20 9 views
0

У меня есть QWizardPage, в котором у меня есть QListWidget. Я хочу, чтобы следующая кнопка включалась только тогда, когда в QListWidget был выбран хотя бы один элемент. Я попытался использовать registerField (...) и установить его как обязательный, но он ничего не сделал. Я также попытался изменить свойство в команде registerField на ("selectedItems()"), а затем он застрял на отключенном.Установить выбор элементов QListWidget

Я действительно не хотел бы создавать новый модифицированный класс для QWizardPage и повторно реализовывать isComplete(). Есть ли другой путь?

спасибо.

ответ

0

QListWidgets имеет сигнал, когда элемент активирован (выбран). Вы можете подключить этот сигнал к слоту, который включает следующую кнопку.

Вы можете использовать что-то вроде

QListWidget.itemActivated.connect(self.enable_button) 

и в вашей enable_button функции, вы можете просто включить кнопку:

next_button.setEnabled(True) 

Это должно позволить вам сделать это без переделывания любой из ваших QWizardPage материала

+0

Это не работает. Я не могу применить «setEnabled/setDisabled» на кнопке, которая является частью QWizard. – Omer

+0

Если вы разместите свой код, мы сможем помочь вам –

+0

Я не думаю, что вся функция 'setupUi' вас очень заинтересовала. В основном единственное, что имеет отношение к 'QListWidget', это следующая строка: ' self.wizard_page_features.registerField ('features *', self.features_list) ', который находится в функции' __init__' модифицированного класса Wizard. btw: 'self.wizard_page_features' является' QWizardPage' с 'QListWidget' в нем, а' self.features_list' является '' QListWidget''. – Omer