![]() |
|
|
![]()
|
|
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Вот например у меня есть QlineEdit обьект и еще всякая всячина на форме, в lineEdit задан начальный текст. Вопрос а том, как сделать чтобы при любом изменении текста в нем, выполнялась моя функция, например при пустом lineEdit делать неактивными остальные элементы на форме?
|
|||
|
||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: 2 Всего: 10 |
revanatar, сигналы textChanged/textEdited в помощь
|
|||
|
||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
пробовал, не реагирует
где вместо editingFinished() перепробовал все что в принципе возможно для данной ситуации |
|||
|
||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: 2 Всего: 10 |
revanatar, connect true возвращает?
Это сообщение отредактировал(а) alexvs11 - 11.5.2012, 22:12 |
|||
|
||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Вот так проверил, вывело 0
Это сообщение отредактировал(а) revanatar - 11.5.2012, 22:46 |
|||
|
||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
в общем не соединяет почему-то
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Что пишет в окне Output?
isEmpty_1 точно описана как слот? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| _GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 6 Всего: 7 |
попробуй для isEmpty_1 добавить скобки
-------------------- Дорогу осилит идущий |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Если используешь QtCreator, используй подсказки редактора (если подсказки не появляются сами, используешь Ctrl-Enter):
Вводишь con - в подсказке выбираешь connect Подсказка 1 аргумента: sender - вводишь widget.lineEdit, Подсказка 2 аргумента: singal - вводишь SIGNAL( Подсказка сигнала - выбираешь сигнал из списка Подсказка 3 аргумента: receiver или member; в данном случае member - вводишь SLOT( Подсказка слота - выбираешь слот из списка. Если слот ещё не объявлен, он в списке не появится, поэтому сначала объяви слот в заголовке. |
|||
|
||||
| revanatar |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
в netbeans сижу. |
||||
|
|||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
так и не ответил и потом, тебе _GRIN_ абсолютно точно указал на ошибку -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| revanatar |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Со скобками то же самое. |
||||||||
|
|||||||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Скобки потерялись после попыток сделать по-другому. Что за окно Output? Построил, выполнил?
Это сообщение отредактировал(а) revanatar - 12.5.2012, 12:09 |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
revanatar, какая IDE ?
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| _GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 6 Всего: 7 |
нужен лог выполнения кода, где ты коннект осущствляешь (если коннект динамически например происходит) - кьют напишет, почему коннект неудался (нет такого слота, или сигнала, или указатель на сендера нулевой) - короче нужно лог смотреть а не телепатией заниматься =)
-------------------- Дорогу осилит идущий |
|||
|
||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Писал же: netbeans.
Думал в эклипс перебраться - так там темный лес с настройками. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
а, да. только сейчас заметил В netbeans не знаю. В QtCreator оно называется "Вывод приложения", в студии - "Output"... поищи что-нибудь похожее в твоей IDE. Дело в том, что при возникновении каких-либо проблем в рантайме Qt пишет туда довольно подробное сообщение с описанием проблемы. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Для джавы там только есть (
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
тогда попробуй запустить своё приложение просто из консоли (в windows - cmd.exe, в linux - думаю объяснять не нужно)))
по идее кутя напишет проблему прямо в консоли -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
в windows это не работает |
|||
|
||||
| _GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 6 Всего: 7 |
насколько я помню работает и в винде. Ну а сюда выложи текст из output.txt - тогда можно будет дальше думать. Это сообщение отредактировал(а) _GRIN_ - 14.5.2012, 23:27 -------------------- Дорогу осилит идущий |
|||
|
||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Видимо не работает, просто прога открылась, output.txt пустой.
Конечно, такие танцы с бубном не тема, надо на родную ide переходить Хз когда эклипсоделы и/или нетбинсофилы сделают норм интеграцию. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
В Windows нужно скачать DebugView.zip с microsoft.com
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
хммм... точно. как-то сразу не дошло. он у меня есть. лови в аттаче Присоединённый файл ( Кол-во скачиваний: 4 )
DebugView.zip 285,57 Kb-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Сигнал принимает в себя qstring оказывается. Вот только не знаю что передать туда, нужен же конкретный результат. |
|||
|
||||
| _GRIN_ |
|
||||||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 6 Всего: 7 |
revanatar, сначала ты писал:
лог выводит, что ты коннектишь сигнал с другой сигнатуров (с параметром QString):
ты выложи тот код, который ты запускаешь =) - а то совсем нас запутал. P.S. сигнатура сигнала и слота при коннекте должна указываться - а у тебя сигнал указан с неправильной сигнатурой, вот кьют сигнал и не нашёл. Это сообщение отредактировал(а) _GRIN_ - 15.5.2012, 23:02 -------------------- Дорогу осилит идущий |
||||||
|
|||||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
|
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
значит "нет такого сигнала QLineEdit::textChanged()". Есть только такой QLineEdit::textChanged( const QString & text ) вот и нужно коннектить
а isEmpty_1() описать так
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Почему так? В смысле зачем туда const QString & ? |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
затем, что сигнал, на который ты законнекчиваешь этот слот передаёт строку... хотя... можешь попробовать
а isEmpty_1() оставить без изменений. я, просто, не помню в сигнале или в слоте может быть больше аргументов, но сигнатура в connect точно должна совпадать с описанием -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
isEmpty_1() - работает
Вопрос не по теме: каким макаром и куда можно БЫСТРО выводить текст на форму посимвольно. Такие вещи как insertPlainText("") и аналогичные начинают тормозить программу, если обращаться к ним в цикле. |
|||
|
||||
| _GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 6 Всего: 7 |
Потому что сигналы-слоты - это по сути обвязка над "указателями на функции", которая разруливается moc-препроцессором. Читай про механиз сигналов-слотов тут: http://qt-project.org/doc/qt-4.8/signalsandslots.html
как показывает практика - к слоту без параметров свободно коннектятся сигналы с любыми параметрами (и любым их количеством). Это сообщение отредактировал(а) _GRIN_ - 17.5.2012, 08:12 -------------------- Дорогу осилит идущий |
|||
|
||||
| Sality123 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 10.3.2011 Репутация: нет Всего: нет |
Ну можно 1) доставать данные ui->plineText->text() 2) прибавляем символ string.append("d") 3) пихаем результат опять в плайнтекст ui->plineText->setText(string) непомню точно, может есть функция проще у плайнтекста типо ui->plineText->append("s") Ах да, любой цикл будет тормозить программу, если он долго обрабатывает команды. Не думаю что insertPlainText("") настолько тугой. Скорее всего в твоем цикле либо очень много задач что он неуспевает их отработать быстро без видимого зависания програмы. Это сообщение отредактировал(а) Sality123 - 17.5.2012, 14:25 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
смотри, если ты откуда-то читаешь посимвольно, и тут же каждый символ пихаешь в виджет, то будет тормозить. Так как производится еще обработка текста и куча дополнительных операций. Лучше добавлять каждый символ во временную текстовую переменную, а когда все символы будут обработаны, то ее содержимое добавить к тексту виджета. Это значительно ускорит работу программы. |
|||
|
||||
| revanatar |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Да, ускорит, но у меня случай когда я не знаю длинны текста, и зачастую он большой, максимальное количество символов спокойно может переполнить uint. Я так понимаю что ничего быстрей нету? Тогда выводить в файл только остается. |
||||
|
|||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Делай ограничения по числу символов (например, после накопления 80 символов буфер выводится на экран), времени (по прошествии 5 сек буфер выводится на экран), терминальных символов (при получении перевода строки буфер выводится на экран).
|
|||
|
||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Да просто нету гарантий что текст "влезет". |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Ну, если размер текста не влезает с оперативку - обычный текстовый редактор не пойдёт. Возможно, удобнее складывать не в простой файл, а в базу данных, а выводить в QLisTView с QSqlTableModel (хотя возможно, придётся свою модель написать). Но для записив БД придётся точно также делить на куски. |
|||
|
||||
| revanatar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Не в оперативке дело, а например в textBrowser, длинна текста которого возвращается в int. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
revanatar, ну и? Тебе указанный инструментарий в принципе не подходит (если честно, подобное количество текста в принципе человеком сложно воспринимается). Или меняй задачу или ищи другой инструментарий.
|
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
int - 32 разрядное число. Если длина в него не влезает, массив, как правило, не влезет в оперативку. Если это не 64-разрядный компьютер с не менее чем 4GB памяти, причём операционка такую память может предоставить приложению пользователя. |
|||
|
||||
| revanatar |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
А, я забыл что int меняет свой размер |
||||
|
|||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |