Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
fortero |
11.5.2011, 1:54
Сообщение
#11
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(breeve @ 11.5.2011, 1:37) Link Цитата(fortero @ 11.5.2011, 2:32) Link Я уже думал об этом, но нужно не только изминение отследить но и ч то бы оно не пустым осталось! Если я тебя правильно понял, то ты в этом слоте делай обработку т.о. если строка пустая заблокировать кнопку, если нет то разблокировать. Ну и изначально блокируешь кнопку, чтобы пользователь в любом случае что-нибудь ввел. Верно Вы понимаете, вот я набросал пример, отбросив лишенее:
Сообщение отредактировал fortero - 11.5.2011, 1:55 |
|
|
|
|
breeve |
11.5.2011, 2:18
Сообщение
#12
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1
|
Или можешь сделать просто флаг - переменную bool isEmpty. Которая изначально будет тру(строка пустая). И при любом изменении текста LineEdit'а будет проверяться пустая ли строка. А как это сделать читай выше. Сигнал к слоту, и в нем обрабатываешь и изменяешь переменную.
Пример твой не прокатит, насколько я знаю чтобы сделать слот нужно в любом случае класс создавать свой. Проверенный код: BLOCKBUTTON_H BLOCKBUTTON.CPP Сообщение отредактировал breeve - 11.5.2011, 2:21 |
|
|
|
|
fortero |
11.5.2011, 3:43
Сообщение
#13
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0
|
Спасибо помогло, пару маленьких поправок и всё стало так как я хочу!
Но вот снова не задача, а как быть когда надо обслуживать несколько поолей, если в 3 из 9 полей нет данных то кнопка не должна быть активная, как это орагнизовать??? |
|
|
|
|
MJIbIu |
11.5.2011, 8:57
Сообщение
#14
|
|
Студент ![]() Группа: Участник Сообщений: 38 Регистрация: 14.4.2010 Пользователь №: 1630 Спасибо сказали: 3 раз(а) Репутация: 0
|
Цитата(fortero @ 11.5.2011, 4:43) Link Спасибо помогло, пару маленьких поправок и всё стало так как я хочу! Но вот снова не задача, а как быть когда надо обслуживать несколько поолей, если в 3 из 9 полей нет данных то кнопка не должна быть активная, как это орагнизовать??? Может быть есть есть и другие способы, но в лоп приходит тока мысль создать массив из bool переменных. При каждом вводе заполнять его, не пустое или пустое. потом его проверять на все true. |
|
|
|
|
breeve |
12.5.2011, 10:51
Сообщение
#15
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1
|
Цитата(fortero @ 11.5.2011, 4:43) Link Спасибо помогло, пару маленьких поправок и всё стало так как я хочу! Но вот снова не задача, а как быть когда надо обслуживать несколько поолей, если в 3 из 9 полей нет данных то кнопка не должна быть активная, как это орагнизовать??? Подключаешь сигналы textChanged(QString), от трех LineEdit'ов к одному слоту и там обрабатываешь. Слот выглядит примерно так:
|
|
|
|
|
fortero |
13.5.2011, 1:43
Сообщение
#16
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0
|
Всем оргрмное спасибо!
Всё работает так как я и представлял! P.S. А подскажите а какой функцией можно измереть длинну строки, в классе QString? |
|
|
|
|
silver47 |
13.5.2011, 6:35
Сообщение
#17
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6
|
Цитата(fortero @ 13.5.2011, 3:43) Link А подскажите а какой функцией можно измереть длинну строки, в классе QString? int QString::size () const Returns the number of characters in this string. The last character in the string is at position size() - 1. In addition, QString ensures that the character at position size() is always '\0', so that you can use the return value of data() and constData() as arguments to functions that expect '\0'-terminated strings. Все что курсивом для общего развития. Существуют так называемые C-строки и Pascal-строки. Первые произвольной длинны, последний символ - \0, счет ведется с нулевого символа. Вторые длинной до 255 символов, счет ведется с 1 символа, т.к. нулевой содержит длину строки (один байт). Сообщение отредактировал silver47 - 13.5.2011, 6:39 |
|
|
|
|
Litkevich Yuriy |
13.5.2011, 7:20
Сообщение
#18
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(fortero @ 11.5.2011, 2:01) Link выяснить QLineEdit полные или пустые??? QLineEdit::text() + QString::isEmpty()
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 19:28 |