2015-01-20 3 views
0

У меня есть поле со списком x_axis_unit в qt с двумя параметрами; метров и мс. Когда я меняю параметры, поле со списком не принимает к сведению изменение и остается застрявшим на метрах после того, как я изменил параметр на ms, как только я выйду из gui. Я набралИзменение параметров на основе комбинированного блока qt

ui->plot_type->setCurrentIndex(1); 

но это не установлено. Итак, какой аргумент нужен, чтобы установить текущий индекс в его текущее значение? Также на основе текущей опции я хотел бы запустить цикл, который изменяет другой параметр. Так что, если текущий текст в поле со списком находится в нескольких метрах, то я установить переменную ось до 0, и если он находится в мс, то я установить переменную в 1

// коробка Combo код

ui->setupUi(this); 
ui->x_axis_unit->addItem("metres"); 
ui->x_axis_unit->addItem("ms"); 

Так как я могу установить поле со списком в ms, оно всегда находится на метрах.

+0

Какая версия 'Qt' вы с помощью? Здесь у меня 4,8, и я не могу найти метод setCurrentText. Но вы можете использовать 'setCurrentIndex' для указания элемента в комбо. –

+0

5.3, если я использую этот метод и изменяю элемент со списком, он останется установленным? – Duanne

+0

'будет ли он оставаться установленным' Я этого не понимаю ... Но использование' setCurrentIndex' должно изменить элемент 'selected' в комбо. Например, если у вас есть 2 элемента и вызывается 'setCurrentIndex (1)', комбо будет выбирать второй элемент (помните, индексы на основе 0) –

ответ

0

Вы можете использовать перечисление, чтобы сохранить индекс для поля со списком.

Если перечисление имеет класс сферы вы можете изменить поле со списком из любой функции в классе с «comboBox.setCurrentIndex (запись перечислений)», как это:

enum comboBoxSelection 
{ 
    eMetres = 0, 
    eMS 
}; 

x_axis_unit = new QComboBox(parent); 

x_axis_unit->insertItem(eMetres, "Metres"); 
x_axis_unit->insertItem(eMS, "ms"); 

x_axis_unit->setCurrentIndex(eMS); 
Смежные вопросы