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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сдвинуть контекстное меню  (Прочитано 3280 раз)
INZER
Гость
« : Сентябрь 05, 2017, 15:26 »

Создаю кастомное контекстное меню для таблицы

Код:
    ui->tableDevices->addAction(acRepairState);
    ui->tableDevices->addAction(acSwitchReserve);
    ui->tableDevices->addAction(acSwitchToStandby);
    ui->tableDevices->setContextMenuPolicy(Qt::ActionsContextMenu);

Как сдвинуть его на 10 пикселей вправо и на 10 вниз относительно стандартного местоположения под курсором?

Заранее спасибо
Записан
MrDron
Гость
« Ответ #1 : Сентябрь 05, 2017, 15:45 »

Напрашивается что-то типа:
Код
C++ (Qt)
ui->tableDevices->installEventFilter(this);
 
bool Widget::eventFilter(QObject *watched, QEvent *event)
{
   if (watched == ui->tableDevices && event->type == QEvent::ContextMenu)
   {
       QMenu.popup(QCursor::pos() + QPoint(10, 10));
   }
   return QWidget::eventFilter(watched, event);
}
 
« Последнее редактирование: Сентябрь 05, 2017, 15:49 от MrDron » Записан
INZER
Гость
« Ответ #2 : Сентябрь 05, 2017, 16:03 »

Цитировать

QMenu.popup(QCursor::pos() + QPoint(10, 10));

Немножко не понял как обратиться к QMenu созданного для tableDevices
Записан
MrDron
Гость
« Ответ #3 : Сентябрь 05, 2017, 16:06 »

Цитировать

QMenu.popup(QCursor::pos() + QPoint(10, 10));

Немножко не понял как обратиться к QMenu созданного для tableDevices

Нужно его создать, это вместо твоего кода:
Код
C++ (Qt)
QMenu *menu = new QMenu();
menu->addActions(QList<QAction*>() << acRepairState << acSwitchReserve << acSwitchToStandby);
 
Записан
INZER
Гость
« Ответ #4 : Сентябрь 05, 2017, 16:30 »

Тупанул, спасибо, все ok
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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