LINUX.ORG.RU

Qt5 QMenu QMenubar пропускает один клик

 


1

1

Вобщем код:

 menuBar = menuBar(); // QMainWindow
a1 = new QMenu(menuBar);
a1->setTitle(tr("&File"));
// ... добавление QAction's в a1, всякие там: new, open, save, save as
menuBar->addMenu(a1);
Собирается. Кликаю — выпало меню. Кликаю — скрылось. Кликаю — ноль эмоций. Кликаю — выпало. Кликаю — скрылось. Кликаю — ну вы поняли, снова ноль эмоций и так по кругу.

Пропускает один клик. Что за хрень?

Ответ на: комментарий от deep-purple

Кстати, креатор нифига не чистит старые удаленные элементы гуя из кода

Шта? Вы про .ui? Чистит от его...

Минусы?

Всё что вы написали и есть минусы. Вы до этого на чём писали, на сишке? Проблема вашего подхода в том, что так никто не делает. Вы решаете проблему, которой нет.

Я всё ещё не пойму зачем вы так об этом переживаете. У меня пробрасывания сигналов почти нет в коде. Всё подключается в конструкторе родителя и никаких проблем я не имею. Ненужны никакие сигнлтоны и прочий бред.

RazrFalcon ★★★★★
()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Всё что вы написали и есть минусы?

Я считаю что нет.

на сишке?

Было как-то, совсем чуть-чуть.

так никто не делает. Вы решаете проблему, которой нет.

Может потому, что одни не вкурсе, другие забыли, третьим пофигу? https://wiki.qt.io/Threads_Events_QObjects

While the worker is busy working, what's the event loop doing? You should've guessed it: nothing! It dispatched the mouse press event and it's blocked waiting for the event handler to return.

зачем вы так об этом переживаете, у меня пробрасывания сигналов почти нет в коде

А у меня будет много, если не выносить в одну кучу или не делать глобальный объект.

Всё подключается в конструкторе родителя и никаких проблем я не имею

Да, на тысячу строк, я помню. Могу согласиться только если класс реально делает что-то большое сложное, но ОДНО и с малым кол-вом используемых им других компонентов, а не всех подряд элементов гуя + тредов + еще какой-нибудь фигни, которая потом появится. Даже пыхеров за такое по рукам линейкой бьют.

В целом — благодарю за помощь. Я получил нужную мне информацию. Еще раз перечитаю этот тред, подумаю, может на переоценку осенит.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Может потому, что одни не вкурсе, другие забыли, третьим пофигу?

Вы видите фреймворк в первый раз и считаете что все, кто его используют, используют его неверно?

PS: при чём тут та ссылка на статью?

RazrFalcon ★★★★★
()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Конечно нет. Дело не в использовании фреймворка, а в структуре проекта, как разложены файлы, что внутри и как соединяется. Это (без приоритета, просто перечисление), во первых — дело вкуса (как сказали в другом треде), во вторых — необходимость, т.к. приложения бывают разные, в третьих — привычка, в четвертых — как повелось и теперь не исправить, в пятых — как договорились когда работают больше одного.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Так в статье написано как ивент луп работает. Я не хочу класть все в одну кучу, не хочу засирать ивент луп мусорными сигналами, поэтому использую глобальный объект. Он же еще и реально состояние глобальное будет содержать, т.е. все пучком, один хрен его заводить было нужно.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Ну не знаю, может быть, тут не спорю.

deep-purple ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.