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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [4.3.3] Как запретить по Enter срабатывать у диалога Accept?  (Прочитано 11572 раз)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« : Декабрь 13, 2007, 12:17 »

В общем есть диалог, на нем QDialogButtonBox с двумя кнопками Ok и Cancel. При нажатии Enter срабатывает accept, а как от этого избавится? Пытался вылавливать кнопку Ok и ставить ей setAutoDefault(false), не помогает. Что нужно сделать?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
WW
Гость
« Ответ #1 : Декабрь 13, 2007, 12:50 »

Я в таких случаях делаю свой диалог. Полный контроль над полетом.
Записан
Barmaglodd
Гость
« Ответ #2 : Декабрь 13, 2007, 15:07 »

А еще вызвать у неё (кнопки Ok) setDefault (false) не пробовали?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #3 : Декабрь 13, 2007, 18:47 »

А еще вызвать у неё (кнопки Ok) setDefault (false) не пробовали?
Пробовал, не помогает. Грустный
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #4 : Декабрь 13, 2007, 18:48 »

Я в таких случаях делаю свой диалог. Полный контроль над полетом.
Дык у меня свой диалог, что мне сделать? Может QDialogButtonBox заменить на обычные пушбатоны? (хотя неохота что-то)
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ритт
Гость
« Ответ #5 : Декабрь 13, 2007, 20:58 »

а энтер точно на кнопке срабатывает? а то бы я предположил, что искэйп тоже на пашбаттон биндится...
однако, смотреть следует в сторону кудалога
Записан
Barmaglodd
Гость
« Ответ #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 Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #7 : Декабрь 14, 2007, 12:25 »

setAutoDefault вызываю после создания QDialogButtonBox.
искэйп тоже биндится.
Неужели придется у диалога перехватывать нажатие энтера???
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Emc
Гость
« Ответ #8 : Декабрь 14, 2007, 12:37 »

а смысл отказываться от enter'a - обычно это удобно, если что можно всегда accept переописать
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #9 : Декабрь 14, 2007, 12:41 »

а смысл отказываться от enter'a - обычно это удобно, если что можно всегда accept переописать
Иногда по запарке нажимаешь ентер и.... в бд идут неполные данные. Пришлось писать обработчик, который проверяет на заполненность данными, но не нравится мне такое.
Записан

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

Иногда по запарке нажимаешь ентер и.... в бд идут неполные данные. Пришлось писать обработчик, который проверяет на заполненность данными, но не нравится мне такое.
Это нормально при работе с БД - еще на клиенте контролировать заполнение данных. Потом искать неполные данные - еще хуже.
Записан
Sergeich
Гость
« Ответ #11 : Декабрь 14, 2007, 15:48 »

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

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #12 : Декабрь 15, 2007, 14:47 »

Поставь event filter на диалог
Так скорее всего и сделаю. Думал есть решение попроще.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #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
Гость
« Ответ #14 : Декабрь 15, 2007, 19:58 »

По моиму проще всего на диалог (виджет) повесить шорткат пустой...
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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