С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
tsoml
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 2
1

Передача значения с QLineEdit в QSpinBox

22.11.2014, 15:19. Просмотров 1054. Ответов 1
Метки нет (Все метки)

Доброго времени суток. Суть задачи такова: В текстовом редакторе должны автоматически отображаться числа, вводимые в счетчике, а значение данного счетчика должно соответственно обновляться и равняться числу, введенному в текстовом редакторе.

С первой частью разобрался: как я понял счетчик QSpinBox умеет посылать сигнал int или Qstring - посылаем сигнал valueChanged(QString) в слот нашего текстового редактора QLineEdit и вуаля - все работает так как нужно. А вот теперь вторая часть: с текстового редактора QLineEdit отправляем сигнал textChanged(QString) и тут возникает проблема , QSpinBox имеет только int слот и в итоге ничего не работает..

C++ (Qt)
1
2
connect(sb1,SIGNAL(valueChanged(QString)),line,SLOT(setText(QString)));
connect(line,SIGNAL(textChanged(QString)),sb1,SLOT(setValue(int)));
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2014, 15:19
Ответы с готовыми решениями:

Вывод в QMessageBox введенного значения в QLineEdit
Доброе утро! Начал Qt осваивать... всю голову сломал... Пытаюсь написать...

Ошибка: 'QLineEdit' does not name a type QLineEdit* m_ptxInp
Уважаемые,что то я ковырялся -ковырялся, писал клиент для сервера. ПО типу чат....

Как в Qt создать привязку табличных данных к QLineEdit через QSqlQueryModel с возможностью пересчета данных в таблице и на форме в QLineEdit
Уважаемые пишу программу с большим количеством вычислений возник вопрос Как в...

QSpinBox в QTableWidget
Здравствуйте, подскажите пожалуйста, как получить значение объекта QSpinBox,...

QTableWidget и QSpinBox
Здравствуйте, столкнулся с необходимостью написать UI для метода...

1
Nelkor
20 / 20 / 5
Регистрация: 05.12.2013
Сообщений: 215
22.11.2014, 17:14 2
Лучший ответ Сообщение было отмечено tsoml как решение

Решение

Итак, твоя программа состоит из трёх файлов:

main.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
#include "mainwidget.h"
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWidget w;
    w.show();
    
    return a.exec();
}
mainwidget.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef MAINWIDGET_H
#define MAINWIDGET_H
 
#include <QWidget>
#include <QSpinBox>
 
class MainWidget : public QWidget
{
    Q_OBJECT
    
public:
    MainWidget(QWidget *parent = 0);
    ~MainWidget(){}
 
private:
    QSpinBox *spinbox;
 
private slots:
    void onTextChanged(QString);
};
 
#endif // MAINWIDGET_H
mainwidget.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "mainwidget.h"
 
#include <QLineEdit>
#include <QVBoxLayout>
 
MainWidget::MainWidget(QWidget *parent)
    : QWidget(parent)
{
    QLineEdit *lineEdit = new QLineEdit;
    spinbox = new QSpinBox;
 
    connect(lineEdit, SIGNAL(textChanged(QString)), SLOT(onTextChanged(QString)));
    connect(spinbox, SIGNAL(valueChanged(QString)), lineEdit, SLOT(setText(QString)));
 
    QVBoxLayout *qvbl = new QVBoxLayout;
    qvbl->addWidget(lineEdit);
    qvbl->addWidget(spinbox);
 
    setLayout(qvbl);
}
 
void MainWidget::onTextChanged(QString str) { spinbox->setValue(str.toInt()); }
Добавлено через 5 минут
Поскольку QSpinBox не имеет подходящего слота, всего лишь требуется создать его самому. Альтернативное решение - унаследовать класс QSpinBox и добавить туда новый слот, но овчинка выделки не стоит. Проще добавить слот в основной класс программы и там указать всё, что надо для переноса текста в QSpinBox. А всё что надо - это метод toInt() класса QString.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2014, 17:14

Сравнить значение в QSpinBox
Добрый день я только начинаю изучать QT .Интересует как сравнить значение...

Записать значение Qspinbox в переменную
есть глобальная переменная (а1). Задача: как с помощью qspinbox ?? То есть что...

Как убрать стрелки QSpinBox?
как убрать стрелки qspinbox?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru