Russian Qt Forum
Ноябрь 25, 2024, 10:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Одна кнопка + несколько textEdit'ов  (Прочитано 3982 раз)
NortT
Гость
« : Июнь 02, 2011, 19:48 »

Добрый день!
Есть на форме некоторое неизвестное заранее количество textEdit'ов. И есть toolButton, который выполняет некоторое действие, например, делает текст в текстЕдите жирным или еще чего нибудь, неважно. Так вот, как определить текущий текстЕдит, над которым необходимо совершить нужное действие? Есть идея, что-то типа при получении фокуса текстЕдитом запоминать этот текстЕдит как текущий и делать connect сигнала кнопки с необходимым слотом текстЕдита, предварительно сделав disconnect для предыдущего коннекта.
Записан
_OLEGator_
Гость
« Ответ #1 : Июнь 02, 2011, 19:58 »

Узнать активный (на котором находится фокус) виджет:
Код:
QApplication::focusWidget()
Чтобы фокус не перешел на кнопку:
Код:
QWidget::setFocusPolicy(Qt::NoFocus)

Есть еще вариант просто запоминать последний QTextEdit, на котором побывал фокус:
Код:
void QApplication::focusChanged(QWidget * old, QWidget * now) [signal]
Записан
NortT
Гость
« Ответ #2 : Июнь 16, 2011, 14:37 »

Ну в общем сделал вот так, не знаю насколько это хорошо и правильно, кто-нибудь оцените Улыбающийся
Код
C++ (Qt)
   QWidget *w = QApplication::focusWidget();
   this->curTextEdit = qobject_cast<CTextEdit*>(w);
   if (!this->curTextEdit) this->curTextEdit = NULL;
« Последнее редактирование: Июнь 16, 2011, 14:39 от NortT » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Июнь 16, 2011, 15:14 »

третья строчка абсолютно бессмысленная
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
NortT
Гость
« Ответ #4 : Июнь 16, 2011, 16:39 »

А точно, оно же и так нулем будет, если не кастанется.
« Последнее редактирование: Июнь 16, 2011, 16:43 от NortT » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Июнь 17, 2011, 20:22 »

писать NULL на с++ моветон
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Июнь 17, 2011, 20:28 »

Давайте только без NULL vs 0. Было уже.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
NortT
Гость
« Ответ #7 : Июнь 18, 2011, 10:46 »

писать NULL на с++ моветон
Да без проблем, как скажешь Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.131 секунд. Запросов: 22.