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

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

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Событие перед переключением tab  (Прочитано 21031 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #15 : Октябрь 28, 2009, 14:41 »

Кстати при таком раскладе виден переход на следующую закладку, после которого задается вопрос, а потом видна отмена - не есть гуд.
Ничего лучшего не видно, может быть попробовать замаскировать это с помощью setUpdateEnabled.
Впечатление такое что Вы "гладите кошку против шерсти" - табы предполагают безмодальное поведение которое Вы упорно хотите превратить в модальное. Вместо этого чем плохо например приделать к контролам валидаторы? Писать не больше
Записан
cdsmika
Гость
« Ответ #16 : Октябрь 28, 2009, 15:01 »

Кстати при таком раскладе виден переход на следующую закладку, после которого задается вопрос, а потом видна отмена - не есть гуд.
Ничего лучшего не видно, может быть попробовать замаскировать это с помощью setUpdateEnabled.
Впечатление такое что Вы "гладите кошку против шерсти" - табы предполагают безмодальное поведение которое Вы упорно хотите превратить в модальное. Вместо этого чем плохо например приделать к контролам валидаторы? Писать не больше
Да, я тоже думаю об использовании setUpdateEnabled, но еще не пробовал.
впечатление может и правильное, но я не могу иначе. При переключении закладок необходимо перезагружать данные из БД. А если перезагружать, то естественно необходимо спросить у человека не хочет ли он потерять свои изменения. Не понял как валидаторы здесь могут помочь. Как я понял из хелпа валидаторы можно установить только на QLineEdit и QComboBox. У меня QTableWidget (но это не обязательно, может быть и любой другой класс, в том числе и свой компонент)
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #17 : Октябрь 28, 2009, 15:07 »

естественно необходимо спросить у человека не хочет ли он потерять свои изменения.
совсем не естественно. я бы переработал интерфейс...
Записан
cdsmika
Гость
« Ответ #18 : Октябрь 28, 2009, 15:11 »

естественно необходимо спросить у человека не хочет ли он потерять свои изменения.
совсем не естественно. я бы переработал интерфейс...
Хорошо, научи меня как
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #19 : Октябрь 28, 2009, 15:15 »

что находится внутри табов? можно скриншотик? Что пользователь делает - каким образом он редактирует бд? Почему нельзя делать сабмит в бд по ходу редактирования?
Записан
cdsmika
Гость
« Ответ #20 : Октябрь 28, 2009, 15:20 »

что находится внутри табов? можно скриншотик? Что пользователь делает - каким образом он редактирует бд? Почему нельзя делать сабмит в бд по ходу редактирования?
Что находится внутри табов - см. выше. Скриншотик сделаю. Пользователь делает все мыслимые и не мыслимые манипуляции с данными (добавление, удаление, изменение, привязка связанных данных, фоток, изменяет структуру данных в БД и т.д.). Нельзя, т.к. в этом случае изменения нельзя будет откатить (как пошагово так и полностью).
Записан
cdsmika
Гость
« Ответ #21 : Октябрь 30, 2009, 02:22 »

что находится внутри табов? можно скриншотик? Что пользователь делает - каким образом он редактирует бд? Почему нельзя делать сабмит в бд по ходу редактирования?
Вот скриншот
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #22 : Октябрь 30, 2009, 11:16 »

Зачем нужны табы если Вы "Исходящие документы" уже показали выше 2 раза (более чем ясно)  Улыбающийся
Записан
cdsmika
Гость
« Ответ #23 : Октябрь 30, 2009, 12:12 »

Зачем нужны табы если Вы "Исходящие документы" уже показали выше 2 раза (более чем ясно)  Улыбающийся
А это меняет дело? Просто дублирую для пользователей. Тулбар можно скрыть при желании
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #24 : Октябрь 30, 2009, 13:00 »

А это меняет дело? Просто дублирую для пользователей. Тулбар можно скрыть при желании
Так и дублируйте тулбаром или просто лайаутом с набором кнопок/чекбоксов. Табы-то привлекать зачем?
Записан
cdsmika
Гость
« Ответ #25 : Октябрь 30, 2009, 13:07 »

А это меняет дело? Просто дублирую для пользователей. Тулбар можно скрыть при желании
Так и дублируйте тулбаром или просто лайаутом с набором кнопок/чекбоксов. Табы-то привлекать зачем?
Затем, чтобы отображать сложный интерфейс (не только TableWidget) и переключать задачи (проблема в том, что задачи могут быть разной структуры, т.е. документы, пользователи и т.д. При этом необходимо перезагружать данные из БД) можно было просто указанием индекса таба. А зачем по-вашему компонент QTabWidget?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #26 : Октябрь 30, 2009, 13:50 »

Затем, чтобы отображать сложный интерфейс (не только TableWidget) и переключать задачи (проблема в том, что задачи могут быть разной структуры, т.е. документы, пользователи и т.д. При этом необходимо перезагружать данные из БД) можно было просто указанием индекса таба. А зачем по-вашему компонент QTabWidget?
Если нужно "сменить страницу по индексу" то QStackedLayout должен подойти. Конечно, трудности с  QTabWidget невеликие и победить их можно, но табы провоцируют пользователя "везде полазить" что здесь не очень Вам нужно
Записан
cdsmika
Гость
« Ответ #27 : Октябрь 30, 2009, 18:41 »

Затем, чтобы отображать сложный интерфейс (не только TableWidget) и переключать задачи (проблема в том, что задачи могут быть разной структуры, т.е. документы, пользователи и т.д. При этом необходимо перезагружать данные из БД) можно было просто указанием индекса таба. А зачем по-вашему компонент QTabWidget?
Если нужно "сменить страницу по индексу" то QStackedLayout должен подойти. Конечно, трудности с  QTabWidget невеликие и победить их можно, но табы провоцируют пользователя "везде полазить" что здесь не очень Вам нужно
Поясните как использование QStackedLayout может решить проблему проверки перед сменой задачи? QStackedLayout также как и QTabWidget не содержит вышеуказанного события...
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #28 : Октябрь 30, 2009, 18:52 »

Поясните как использование QStackedLayout может решить проблему проверки перед сменой задачи? QStackedLayout также как и QTabWidget не содержит вышеуказанного события...
Событие Вы возьмете от тулбара или набора кнопок. А в обработчике решите нужно ли делать setCurrentIndex для этого лайаута или заставить пользователя закончить все дела на текущей странице
Записан
cdsmika
Гость
« Ответ #29 : Октябрь 30, 2009, 19:12 »

Поясните как использование QStackedLayout может решить проблему проверки перед сменой задачи? QStackedLayout также как и QTabWidget не содержит вышеуказанного события...
Событие Вы возьмете от тулбара или набора кнопок. А в обработчике решите нужно ли делать setCurrentIndex для этого лайаута или заставить пользователя закончить все дела на текущей странице
Спасибо, это конечно вариант, но есть одно НО. Тулбар задач занимает определенное место на экране, если пользователь решит его скрыть (это в принципе разрешено и без моего ведома), то не сможет переключать задачи. Значит нужно сделать фиксированные кнопки или как-то закрепить тулбар.
Таким образом, делаем вывод: для того, чтобы выдавать разрешение на смену текущего фрейма мне нужно ограничить использование интерфейса, вместо того, чтобы просто использовать событие перед переключением (такое событие в тулбаре есть во всех средах разработки, акромя Qt).
Просто пока я не нахожу единомышленников, считающих, что данный сигнал нужен и нужен он практически в каждом контейнере, позволяющем переключение фрэймов.
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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