Поиск:

Ответ в темуСоздание новой темы Создание опроса
> переменные, Как обозначить переменные 
:(
    Опции темы
Dia28
Дата 19.10.2011, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 19.10.2011

Репутация: нет
Всего: нет



Здравствуйте начала изучать только...
 создаю два поля два переменных n и к. как сделать так чтобы они вводились , с ними можно было работать и условие ставить n>200 и n<0...то вышло окошко или предупреждение...? а если выполняется чтобы другое действие было? подскажи пожалуйста
Код



#include <QtGui/QApplication>
#include "mainwindow.h"
 #include <QtGui>
 #include <QFormLayout>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget window;
    window.resize(200,200);
    window.show();
    window.setWindowTitle(
    QApplication::translate("1234","Zadaxa"));


    QLabel *n = new QLabel(QApplication::translate("", " n:"));
    QLineEdit *n1 = new QLineEdit();
    QLabel *k = new QLabel(QApplication::translate("", "k:"));
    QLineEdit *k1 = new QLineEdit();

        QFormLayout *layout = new QFormLayout();
        layout->addWidget(n);
        layout->addWidget(n1);
        layout->addWidget(k);
        layout->addWidget(k1);
        window.setLayout(layout);
         window.show();


    return app.exec();
}


PM MAIL   Вверх
null56
Дата 20.10.2011, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



Я не делал такое, но действовал бы вот так: 
1) унаследовался от класса QLineEdit
2) определил бы у него виртуальный метод (ы)
Код

void QLineEdit::keyPressEvent ( QKeyEvent * event ) [virtual protected]
void QLineEdit::changeEvent ( QEvent * ev ) [virtual protected]

3) в обработчике этого события я бы анализировал содержимое строки и нажатую клавишу и далее действовал от твоих условий
почитай подробнее про эти методы, может это как раз то, что тебе нужно
PM MAIL   Вверх
math64
Дата 20.10.2011, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Нужно делать не класс производный от QLineEdit, а от QValidator, примерно так;
Код

class Validator : public QValidator {
public:
  Validator(QObject* parent=0) : QValitator(parent) {}
  virtual State validate ( QString & input, int & pos ) const {
    bool ok;
    int value = input.toInt(&ok);
    if (ok && value >= min && value <= max)
      return Acceptable;
    else
      return Invalid;
  }
};


Добавлено через 6 минут и 40 секунд
Кстати, производный класс делать не надо - он уже есть, QIntValidator.
PM   Вверх
null56
Дата 20.10.2011, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



math64, да, точно, такая тема была такая вещь, позже можно ее скормить объекту QLineEdit методом
Код

setValidator ( const QValidator * )

тролли всё продумали   smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0405 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.