Название: Меню + модальность Отправлено: Igors от Март 18, 2015, 10:53 Добрый день
При редактировании текста команды Copy/Paste должны быть enabled в меню - но сделать это не удается если текущее окно модально. Кроме того есть еще парочка hotkeys которая тоже должна быть enabled. На 4.7.4 я делал модальное окно родителем меню бара. Это работает и вроде "легально" - но страшно геморройно и по-разному на Mac и Вындоуз. Поэтому при переходе на 5.4 я этот уродливый код снес (в загажник). Может есть штатные средства? Спасибо Название: Re: Меню + модальность Отправлено: GreatSnake от Март 18, 2015, 11:33 Т.е. Вам хочется, чтобы hot-keys главного окна были доступны в диалоге?
Название: Re: Меню + модальность Отправлено: Igors от Март 18, 2015, 11:49 Т.е. Вам хочется, чтобы hot-keys главного окна были доступны в диалоге? Сделать доступность (клавиша работает) не проблема (я помню Ваши советы). Но что с меню? Пример: юзер открывает "Edit" меню, там Copy/Paste серенькие. Нажимает Ctl-V - paste работает. Нехорошо Название: Re: Меню + модальность Отправлено: GreatSnake от Март 18, 2015, 11:53 Вы не ответили на вопрос и совсем запутали.
Как юзер может открыть меню главного (?) окна из модального? Название: Re: Меню + модальность Отправлено: Igors от Март 18, 2015, 12:43 Вы не ответили на вопрос и совсем запутали. Ответ на вопрос: да, я хочу чтобы несколько команд меню были доступны и из модальных диалогов и работали как по клавише, так и из менюКак юзер может открыть меню главного (?) окна из модального? На OSX одно меню приложения на всех. На Вындоуз считаем что меню тоже всегда одно и принадлежит видимому QMainWindow. Т.е. я всегда создаю один QMenuBar Название: Re: Меню + модальность Отправлено: GreatSnake от Март 18, 2015, 12:48 На OSX одно меню приложения на всех. На Вындоуз считаем что меню тоже всегда одно и принадлежит видимому QMainWindow. Т.е. я всегда создаю один QMenuBar Но это совершенно не означает, что модальное окно должно быть в контексте главного окна.Именно модальность перекрывает этот контекст. Делайте такое окно панелью (QDockWidget), но никак не модальным. Название: Re: Меню + модальность Отправлено: Igors от Март 18, 2015, 13:35 Но это совершенно не означает, что модальное окно должно быть в контексте главного окна. То моя забота задизаблить или скрыть все айтемы меню которые не имеют отношения к диалогу.Именно модальность перекрывает этот контекст. Делайте такое окно панелью (QDockWidget), но никак не модальным. Модальных диалогов много, и многие из них имеют текстовые поля. Все на QDockWidget точно не переделать. А снабжать каждое куцей менюхой из неск айтемов - несерьезно. Название: Re: Меню + модальность Отправлено: GreatSnake от Март 18, 2015, 13:44 Модальных диалогов много, и многие из них имеют текстовые поля. Все на QDockWidget точно не переделать. А снабжать каждое куцей менюхой из неск айтемов - несерьезно. Притягивать меню главного окна к диалогу, имхо, хак, да и зачем ???P.S. Ещё раз повторю. Модальный диалог имеет свой, отличных от других контекст. Своими сомнительными действиями Вы нарушаете целостность GUI и можете сконфузить пользователя. Мало того, на других DE есть темы, в которых при появлении модального окна, основное окно затеняется. Название: Re: Меню + модальность Отправлено: Igors от Март 18, 2015, 14:46 Ладно, давайте оставим "идеологическую плоскость" и посмотрим как сделано в Qt
Код Опять парента перебрасывать - ну капитальный невдобняк :'( Название: Re: Меню + модальность Отправлено: Igors от Март 18, 2015, 14:51 Притягивать меню главного окна к диалогу, имхо, хак, да и зачем ??? Основная платформа Mac, а там всегда было одно меню на все приложение. Поэтому если hotkeys не отражены в меню - выглядит как явный баг. И меню должно подмигивать если hotkey сработал. А Вындоуз перетопчется, невелика цаца Edit: вот скриншотик как это выглядит |