LINUX.ORG.RU

QMenu отображается немного неправильно относительно курсора и небольшой вопросик по горячим клавишам

 ,


0

1

Передаю в сигнал customContextMenuRequested(QPoint) такую штуку

m_menu->popup(ui->mainTreeView->mapToGlobal(pos));

Но отображается оно не как все меню (верхний левый угол справа снизу от курсора), а на один элемент выше. Т.е. кровно на один элемент выше положенного.

Что я делаю не так?

Вопрос по горячим клавишам: Можно ли в редакторе действий задать горячую клавишу не комбинацией, а стандартной последовательностью? (типа того, что я делаю сейчас руками: ui->newAction->setShortcut(QKeySequence::New);)

★★★★★

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

Не поверите, но не могу...
В этой идиотской федоре отказали горячие клавиши у случайных программ (например у dolphin и KSnapshot)...

mapToGlobal, т.к. почему-то QMenu по умолчанию отрисовывется относительно верхнего левого угла экрана, на том же расстоянии, что и курсор находится относительно моего виджета.

Т.е. он как будто привязан к раб. столу, а не к виджету.

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

Не поверите, но не могу...

scrot ещё никто не отменял.

aidan ★★★★
()

Надо учитывать высоту заголовка представления

m_menu->popup(ui->mainTreeView->viewport()->mapToGlobal(pos));

То есть не совсем от того объекта координаты преобразовывались.

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

Это не эффект, просто нажатие мыши происходит не на QScrollArea, а на ее viewport(), соответственно, преобразоывать координаты в глобальные надо именно от viewport().

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