Russian Qt Forum
Ноябрь 25, 2024, 20:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
[4.3.3] Как запретить по Enter срабатывать у диалога Accept?
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [4.3.3] Как запретить по Enter срабатывать у диалога Accept? (Прочитано 11566 раз)
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
[4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
:
Декабрь 13, 2007, 12:17 »
В общем есть диалог, на нем QDialogButtonBox с двумя кнопками Ok и Cancel. При нажатии Enter срабатывает accept, а как от этого избавится? Пытался вылавливать кнопку Ok и ставить ей setAutoDefault(false), не помогает. Что нужно сделать?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
WW
Гость
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #1 :
Декабрь 13, 2007, 12:50 »
Я в таких случаях делаю свой диалог. Полный контроль над полетом.
Записан
Barmaglodd
Гость
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #2 :
Декабрь 13, 2007, 15:07 »
А еще вызвать у неё (кнопки Ok) setDefault (false) не пробовали?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #3 :
Декабрь 13, 2007, 18:47 »
Цитата: Barmaglodd от Декабрь 13, 2007, 15:07
А еще вызвать у неё (кнопки Ok) setDefault (false) не пробовали?
Пробовал, не помогает.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #4 :
Декабрь 13, 2007, 18:48 »
Цитата: WW от Декабрь 13, 2007, 12:50
Я в таких случаях делаю свой диалог. Полный контроль над полетом.
Дык у меня свой диалог, что мне сделать? Может QDialogButtonBox заменить на обычные пушбатоны? (хотя неохота что-то)
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ритт
Гость
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #5 :
Декабрь 13, 2007, 20:58 »
а энтер точно на кнопке срабатывает? а то бы я предположил, что искэйп тоже на пашбаттон биндится...
однако, смотреть следует в сторону кудалога
Записан
Barmaglodd
Гость
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #6 :
Декабрь 14, 2007, 11:16 »
Ассистант пишет:
the first push button with the accept role is made the default button when the QDialogButtonBox is shown
Может ваши вызовы setAutoDefault(false) и т.п. происходят до того, как QDialogButtonBox сам выбирает дефолтную кнопку?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #7 :
Декабрь 14, 2007, 12:25 »
setAutoDefault вызываю после создания QDialogButtonBox.
искэйп тоже биндится.
Неужели придется у диалога перехватывать нажатие энтера???
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Emc
Гость
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #8 :
Декабрь 14, 2007, 12:37 »
а смысл отказываться от enter'a - обычно это удобно, если что можно всегда accept переописать
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #9 :
Декабрь 14, 2007, 12:41 »
Цитата: Emc от Декабрь 14, 2007, 12:37
а смысл отказываться от enter'a - обычно это удобно, если что можно всегда accept переописать
Иногда по запарке нажимаешь ентер и.... в бд идут неполные данные. Пришлось писать обработчик, который проверяет на заполненность данными, но не нравится мне такое.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
WW
Гость
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #10 :
Декабрь 14, 2007, 13:13 »
Цитата: panter_dsd от Декабрь 14, 2007, 12:41
Иногда по запарке нажимаешь ентер и.... в бд идут неполные данные. Пришлось писать обработчик, который проверяет на заполненность данными, но не нравится мне такое.
Это нормально при работе с БД - еще на клиенте контролировать заполнение данных. Потом искать неполные данные - еще хуже.
Записан
Sergeich
Гость
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #11 :
Декабрь 14, 2007, 15:48 »
Поставь event filter на диалог
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #12 :
Декабрь 15, 2007, 14:47 »
Цитата: Sergeich от Декабрь 14, 2007, 15:48
Поставь event filter на диалог
Так скорее всего и сделаю. Думал есть решение попроще.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Sergey B.
Программист
Offline
Сообщений: 544
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #13 :
Декабрь 15, 2007, 17:24 »
enum QDialogButtonBox::ButtonRole
This enum describes the roles that can be used to describe buttons in the button box. Combinations of these roles are as flags used to describe different aspects of their behavior.
Записан
Dodge
Гость
Re: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?
«
Ответ #14 :
Декабрь 15, 2007, 19:58 »
По моиму проще всего на диалог (виджет) повесить шорткат пустой...
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...