Правый клик на неактивную вкладку

236
23 февраля 2018, 18:21

Почему для табов, которые активны (2 и 3), пкм срабатывает, а для 4, который неактивен - не срабатывает? Надо mouseevent'ы включить для него?

tabWidget = new QTabWidget();
tabWidget->addTab(&arduinoView, "Модуль"); // это 4 таб, до этого ещё есть
tabWidget->setTabEnabled(4, false);
TabEventFilter *filter = new TabEventFilter();
auto deleter = [](TabEventFilter *tab){ delete tab; };
std::shared_ptr<TabEventFilter> sfilter(filter, deleter);
tabWidget->tabBar()->installEventFilter(sfilter.get());
QObject::connect(tabWidget, &QTabWidget::tabBarClicked, this, [this, sfilter](int i){
    if (sfilter.get()->rightClick && (i == 2 || i == 3 || i == 4))
        CreateUpdateContextMenu(i);
});
bool TabEventFilter::eventFilter(QObject *watched, QEvent *event)
{
    if (event->type() == QEvent::MouseButtonPress)
    {
        QMouseEvent *mevent = static_cast<QMouseEvent *>(event);
        if (mevent->button() == Qt::RightButton)
            rightClick = true;
        else
            rightClick = false;
    }
    return QObject::eventFilter(watched, event);
}

tabBarClicked возвращает -1, когда я кликаю на выключенную вкладку

READ ALSO
QString как сравнить с LineEdit

QString как сравнить с LineEdit

Как сравнить написано в LineEdit с каким-нибудь QString и вывести true/false

219
Java Random генерация случайных слов

Java Random генерация случайных слов

Добрый день! Занимаюсь по книге Эккеля и столкнулся с ниже представленным примеромНе могу понять, почему на выводе программа всегда выдает...

172
Онлайн хранение данных

Онлайн хранение данных

Ребят, посоветуйте как проще всего сделать хранение данных, точнее передачу между компами

133