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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: В QTabWidget не работает installEventFilter()  (Прочитано 2937 раз)
DruidCat
Гость
« : Март 01, 2017, 07:43 »

Друзья помогите, очень долгое время читал форумы и не нашёл ответа на свою проблемму, а ума самому решить её не хватает. Обращаюсь к вам, помогите.
У меня в программе есть вкладки QTableWidget, назвал я их ptwdGlavnaya.
есть фильтр событий.
Код:
/*virtual*/ bool DCHelper::eventFilter(QObject* proditel, QEvent* pevent){//переназначаем Фильтр событий                                               
/////////////////////////////////////                                                                         
//---Ф И Л Ь Т Р   С О Б Ы Т И Й---//                                                                         
/////////////////////////////////////                                                                         
    if((pevent->type()==QEvent::MouseButtonPress)||(pevent->type()==QEvent::Wheel)                           
            ||(pevent->type()==QEvent::KeyPress)){//Если произошёл клик мышки или колёсика или клавиатуры,то..
        slotVremyaProstoya();//Обнуляем счётчик времени простоя программы без пользователя.                   
    }                                                                                                         
    return false;//Пропускаем событие на дальнейшую обработку в программе.                                   
}           

есть метод прописывающий условия срабатывания фильтра
Код:
void DCHelper::adminVremyaProstoya(){//Метод, в котором прописываются правила фильтра события в Администрирова                                         
///////////////////////////////////////////////////////////////////////////                                   
//---Ф И Л Ь Т Р Ы   С О Б Ы Т И Й   А Д М И Н И С Т Р И Р О В А Н И Я---//                                   
///////////////////////////////////////////////////////////////////////////                                   
    this->installEventFilter(this);                                                                                                                                             
    ui->pcmdComLoginVihod->installEventFilter(this);                                                                                                                       
    ui->ptwdGlavnaya->installEventFilter(this);
}

Всё замечательно работает: кнопочки, поля ввода текста и так далее, КРОМЕ ВКЛАДОК:
Код:
ui->ptwdGlavnaya->installEventFilter(this);
Когда я кликаю по ptwdGlavnaya, ничего не происходит. Друзья, подскажите пожалуйста, как мне сделать так, чтобы при нажатии на вкладки ptwdGlavnaya у меня срабатывал фильтр событий?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Март 01, 2017, 08:34 »

За вкладки отвечает QTabBar: http://doc.qt.io/qt-5/qtabwidget.html#tabBar
Записан

DruidCat
Гость
« Ответ #2 : Март 01, 2017, 10:08 »

Спасибо, всё заработало:
Код:
ui->ptwdGlavnaya->tabBar()->installEventFilter(this);

« Последнее редактирование: Март 01, 2017, 10:37 от DruidCat » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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