2015-03-06 2 views
0

Я создаю плагин QGIS с использованием шаблона построителя плагинов QGIS.Как получить значение QtComboBox?

def __init__(self, iface): 

    #some code 
    self.dlg = QtGui.QDialog(); 
    main_layout = QtGui.QVBoxLayout() 
    city = QtGui.QComboBox() 
    city.addItem("Tucson") 
    city.addItem("Austin") 
    city_label = QtGui.QLabel("City", city) 

    buttons = QDialogButtonBox(
     QDialogButtonBox.Ok | QDialogButtonBox.Cancel, 
     Qt.Horizontal, self.dlg) 
    buttons.accepted.connect(self.dlg.accept) 
    buttons.rejected.connect(self.dlg.reject) 

    main_layout.addWidget(city) 
    self.dlg.setLayout(main_layout) 

def run(self): 
    self.dlg.show() 
    result = self.dlg.exec_() 
    if result: 
     selected_city = city.currentText() 
     print selected_city 
     pass 

У меня появляется сообщение об ошибке, потому что «город» не распознается. Как я могу получить выбранное значение в QTComboBox всякий раз, когда пользователь меняет значение? Есть ли более простой способ создания пользовательского интерфейса? Мне просто нужно что-то, что будет обновлять информацию о городе (и некоторой другой) каждый раз, когда пользователь выбирает другое значение, а также изменять параметры в поле со списком каждые 5 минут.

ответ

0

Где вы говорите «город», вы должны сказать «self.city», чтобы город был привязан к объекту. Затем вы можете получить его текст как «self.city.currentText()».

+0

Это сработало! Большое вам спасибо - я очень ценю это. – swooders