powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / QT Combobox и слоты
6 сообщений из 6, страница 1 из 1
QT Combobox и слоты
    #38178714
Паша123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Есть qt под VS 2008. В Дизайнере создана форма, на ней combobox и QLineEdit. В combobox всего 2 пункта. Если выбирается первый то к значению содержащемуся в QlineEdit прибавляется 273, а если второй то отнимается.
Пока сделал так
Valve.h
Код: plaintext
1.
2.
3.
4.
5.
...
private slots:
	void change_tempP();
	void change_tempM();
...


Valve.cpp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
...
Valve::Valve(QWidget *parent, Qt::WFlags flags)
	: QWidget(parent, flags)
{
	ui.setupUi(this);
	connect(ui.comboBox_6,SIGNAL(currentIndexChanged(QString)),SLOT (change_tempP())); //вот тут надо, чтобы выбирал в зависимости от содержимого комбобокса какой слот ему выбирать

}

void Valve::change_tempP(){
	ui.lineEdit_8->setText(QString::number(ui.lineEdit_8->text().toDouble()+273));
}
void Valve::change_tempM(){
	ui.lineEdit_8->setText(QString::number(ui.lineEdit_8->text().toDouble()-273));
}


Это работает, но при выборе любого пункта он естественно начинает прибавлять. Я так понимаю надо смотреть содержимое комбобокса в момент выбора и решать, какой слот использовать? Думаю что надо смотреть в сторону currentText, но вот как лучше сделать??
...
Рейтинг: 0 / 0
QT Combobox и слоты
    #38178721
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паша123,

Присмотрись к http://qt-project.org/doc/qt-4.8/qcombobox.html#itemData
...
Рейтинг: 0 / 0
QT Combobox и слоты
    #38178722
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
один из вариантов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
...
    connect(ui->comboBox,SIGNAL(activated(int)),SLOT (change_combo_box(int)));
...


void MainWindow::change_combo_box(int index)
{
    switch(index)
    {
        case 0:
            ui->lineEdit->setText(QString::number(ui->lineEdit->text().toDouble()+273.0));
            break;
        case 1:
            ui->lineEdit->setText(QString::number(ui->lineEdit->text().toDouble()-273.0));
            break;
    }
}
...
Рейтинг: 0 / 0
QT Combobox и слоты
    #38179150
Паша123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо сработало!))
...
Рейтинг: 0 / 0
QT Combobox и слоты
    #38190797
Паша123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что б не плодить новую тему. Такой вопрос при приведенном выше коде при повторном выборе одного и того же пункта происходит перерасчет уже посчитанного значения. Т.е. предположим что есть комбобокс с пунктами до 1 до 5 и lineEdit в уоторое вводится значение (например 1). При выборе любого пункта в lineEdit происходит вывод значения (1) умноженного на значение выбранное в комбобоксе. Например, при выборе "3" должно отобразится 3, а если после этого "5", то 5. В этом же коде при том же алгоритме получится 1х3х5. Есть ли в qt способ решения?
...
Рейтинг: 0 / 0
QT Combobox и слоты
    #38191699
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
connect(ui.comboBox_6,SIGNAL(currentIndexChanged(QString)),SLOT (change_tempP())); //вот тут надо, чтобы выбирал в зависимости от содержимого комбобокса какой слот ему выбирать

Не, это принципиально неправильный дизайн.

Нужно биндить на ОДИН слот, а в обработчике уже смотреть, какой item в комбике выбран.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / QT Combobox и слоты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]