![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
flankerr |
![]()
Сообщение
#11
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
MoPDoBoPoT У диалога eventFilter(QObject *obj, QEvent *event) почемуто вообще ни когда не вызывается.
kwisp, Красиво??? Простите а что из выше описанного красиво??? Ну уже же написал чуть выше сигнал textChanged () приходит ПОСЛЕ того как изменился текст. Это во первых. А во вторых не понял когда предполгаеся вызывать приведённую в качестве примера функцию и какому классу она должна принадлежать. |
|
|
kwisp |
![]()
Сообщение
#12
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
flankerr,
не функция а слот. присоедини к сигналу изменения текста в QTextEdit. пусть принадлежит классу, какому тебе заблагорассудится, где ты собрался обрабатывать события изменения фокуса? там и слот создай. вызывай этот слот при создании диалога 1 раз дале он будет вызываться всякий раз как ты изменишь текст и в случае пустого текста в редактореТекста появится Введите текст! + будет выделенным. это предложенный мной вариант как альтернативный предложенным ранее. если тебе лень или нет времени изучить что такое фильтр событий eventFilter() можешь воспользоваться этим методом по моему с твоей задачей он справляется. П.С. если ты не понял -- фильтр событий не тронет твой диалог, тебе не надо будет наследоваться и переписывать методы диалога. Сообщение отредактировал kwisp - 4.3.2010, 18:37 |
|
|
MoPDoBoPoT |
![]()
Сообщение
#13
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: ![]() ![]() ![]() |
А ты установил фильтр на текстедит? Пример:
|
|
|
flankerr |
![]()
Сообщение
#14
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
kwisp, ну если я правильно понял то фишка в textEdit.selectAll(). При попытки изменения, изменение встанет на место выделения, а т.к. выделено всё то оно соответсвенно будет удалено и замениться на только что введённое. Если я правильно понял тогда нет смысла в этом слоте и привязки к изменению текста. Можно просто в момент иницализации диалога инициализировать и текст и выделить его - так оно логичнее будет.
Но выделять текст не хотелось бы. MoPDoBoPoT, О! видимо это я не учёл. Спасибо. Заработало. И так благодаря вашим советам найдено два спосба решения поставленой задачи: 1.
2.
Сообщение отредактировал flankerr - 4.3.2010, 19:15 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#15
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
kwisp, логика твоего примера имеет ошибку, т.к. когда пользователь начнёт писать, то оно не пусто, а надобы убрать "Введите Текст".
Нет, всё таки первый вариант был самый простой, с рисованием поверх. О! видимо это я не учёл как так не учёл, вот ведь пример в описании функции изучи его внимательно.
|
|
|
kwisp |
![]()
Сообщение
#16
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
flankerr,
правильно понял. тогда нет смысла в этом слоте и привязки к изменению текста. Можно просто в момент иницализации диалога инициализировать и текст и выделить его - так оно логичнее будет. а пользователь грохнет текст побегает табом по виджетам и будет немножко некрасиво. ну да ладно. kwisp, логика твоего примера имеет ошибку, т.к. когда пользователь начнёт писать, то оно не пусто, а надобы убрать "Введите Текст". ну я честно скажу что не пробовал, однако текст("Введите текст!") же выделен и когда ты начнешь набирать по выделенному то он должен исчезнуть ![]() |
|
|
flankerr |
![]()
Сообщение
#17
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
kwisp, ну если из этих соображений тогда пожалуй да. Однако когда пользователь фокусируется на ТекстЭдете то уже не так важно ввёл что-то или нет - главное "потрогал".
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 9.7.2025, 10:20 |