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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не работает контекстное меню.  (Прочитано 2198 раз)
Senia_Bezrubashkin
Гость
« : Февраль 04, 2013, 10:46 »

Определяю сигнал
Код:
signals:
    void deletetriggered(QAction* a, const QModelIndex & index);
соединяю его с слотом
Код:
connect(this, SIGNAL(deletetriggered(QAction*, const QModelIndex &)),
            this, SLOT(test(QAction*, const QModelIndex &)));
                    ..................
void MyListView::test(QAction* a, const QModelIndex & b)
{
        qDebug()<<a->text();
        qDebug()<<b;
}
так переопределяю нажатие кнопки мыши
Код:
void MyListView::mousePressEvent(QMouseEvent* event)
{
    QModelIndex index = indexAt(event->pos());
    if (index.isValid())
    {
        if (event->button() == Qt::RightButton)
        {
            QAction* b = m_pmnu->exec(event->globalPos());
            emit deletetriggered(b, index);
        }
        else
            QListView::mousePressEvent(event);
    }
}
при клике правой кнопкой мыши на элементе списка (таблица БД) всплывает меню. Далее, при клике на пункте меню тестовый слот отрабатывает как надо, но если кликаю вне контекстного меню - прога вылетает по неизвестной ошибке (точнее, мне не известной ошибке... код 255). Подскажите, что не так делаю. Заранее спасибо.
« Последнее редактирование: Февраль 04, 2013, 11:05 от Senia_Bezrubashkin » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Февраль 04, 2013, 11:24 »

Код:
            QAction* b = m_pmnu->exec(event->globalPos());
            emit deletetriggered(b, index);

При клике вне элемента меню m_pmnu->exec() возвращает 0.
Записан

Qt 5.11/4.8.7 (X11/Win)
Senia_Bezrubashkin
Гость
« Ответ #2 : Февраль 04, 2013, 12:26 »

О! Работает. Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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