Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
Milayi
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 39
1

Отображение числа в QLineEdit

28.04.2014, 08:47. Просмотров 3222. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста, нужно сделать так чтобы в lineEdit вводиться число, в lineEdit_2 второе число, нажимаем кнопку button( для кнопки прописать функцию сложения) и в lineEdit_3 записывается полученное значение. Вот кусочек кода. Буду очень благодарна))
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void MainWindow::nashSlot()
{
    QString str1 = ui->lineEdit->text();
    QString str2 = ui->lineEdit_2->text();
 
 
int i = 10;
int j = 10;
int k = 10;
{
QString str1 = QString::number(i);
QString str2 = QString::number(j);
}
 
    QString finalStr = (str1+str2);
    QString finalStr = QString::number(k);
 
    ui->lineEdit_3->setText(finalStr);
}
 Комментарий модератора 

Создавая тему старайтесь придумать как можно более информативное название темы.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2014, 08:47
Ответы с готовыми решениями:

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

Числа со знаком в QLineEdit
Использую QTableWidget. К ней прицепил делегат, который использует в качестве...

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

QLineEdit
Допустим на виджете есть QLineEdit. Хочу что бы при вводе цифр (а там можно...

QSlider и QLineEdit
Изучаю qt, надо соединить QSlider и QLineEdit QLineEdit *editA = new...

2
Кудаив
410 / 409 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
28.04.2014, 09:20 2
простейший случай с int

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//mainwindow.h
#pragma once
 
#include <QWidget>
#include <QLineEdit>
#include <QPushButton>
 
class MainWindow: public QWidget
{
    Q_OBJECT
 
public:
    MainWindow(QWidget* parent = 0);
public slots:
    void makePlus();
private:
    QLineEdit* m_firstLineEdit;
    QLineEdit* m_secondLineEdit;
    QLineEdit* m_thirdLineEdit;
 
    QPushButton* m_plusButton;
};
 
 
//mainwindow.cpp
#include "mainwindow.h"
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QIntValidator>
 
MainWindow::MainWindow(QWidget *parent)
    : QWidget(parent)
{
    m_firstLineEdit = new QLineEdit;
    m_secondLineEdit = new QLineEdit;
    m_thirdLineEdit = new QLineEdit;
 
    m_firstLineEdit->setValidator(new QIntValidator(m_firstLineEdit));
    m_secondLineEdit->setValidator(new QIntValidator(m_secondLineEdit));
    m_thirdLineEdit->setValidator(new QIntValidator(m_thirdLineEdit));
 
    m_plusButton = new QPushButton("+");
    QHBoxLayout* hBox = new QHBoxLayout;
    hBox->addWidget(m_plusButton);
    hBox->addWidget(m_thirdLineEdit);
 
    QVBoxLayout* vBox = new QVBoxLayout;
    vBox->addWidget(m_firstLineEdit);
    vBox->addWidget(m_secondLineEdit);
    vBox->addLayout(hBox);
 
    this->setLayout(vBox);
 
    connect(m_plusButton, SIGNAL(clicked()), SLOT(makePlus()));
}
 
void MainWindow::makePlus()
{
    bool isFirstOk = false;
    bool isSecondOk = false;
 
    int firstValue = m_firstLineEdit->text().toInt(&isFirstOk);
    int secondValue = m_firstLineEdit->text().toInt(&isSecondOk);
 
    if(isFirstOk && isSecondOk)
        m_thirdLineEdit->setText(QString::number(firstValue + secondValue));
}
 
//main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    
    return a.exec();
}
0
alexey_rage
591 / 391 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
28.04.2014, 11:42 3
Лучший ответ Сообщение было отмечено Milayi как решение

Решение

Цитата Сообщение от Milayi Посмотреть сообщение
QString finalStr = (str1+str2);
Это не правильно! Здесь вы складываете не числа, а две строки.
Я так понимаю вам нужен результат сложения двух чисел?
Тогда нужно делать так:

C++ (Qt)
1
ui->lineEdit_3->setText(QString::number(str1.toInt() + str2.toInt()));
Тогда в lineEdit_3 запишется результат сложения двух чисел типа int, то есть результат будет 20.

Ну и конечно на лайнэдиты нужно ставить фильтры, чтобы пользователь не смог ввести ничего, кроме числа.
Для этого есть QItemDelegate.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2014, 11:42

Блокировать QLineEdit
Привет. Подскажите, как можно блокировать QLineEdit на ввод данных и как...

ENTER в QLineEdit
Добрый вечер! Вопрос такой: как сделать, чтобы при нажатии клавиши ENTER в...

QProgressBar в QLineEdit
Добрый день, сегодня решил сделать в QLineEdit свой ProgressBar. Значит...


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

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

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