AC
Маусым 6, 2020, 12:54 Т.Қ.
Qt/C++ Определение положения курсора над действие(кнопкой) в QToolBar
Доброго дня.
Возник вопрос - как можно определить что курсор находится над определенным действием(кнопкой) в
qtoolbar
?
mainwindow.cpp
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- // ...
- if (globals::settings_UseNoteApp){
- // для кнопок которые расположенны на форме
- //ui->btnAddDoctor->setMouseTracking(true);
- //ui->btnAddDoctor->installEventFilter(this);
- // для mainToolBar
- ui->mainToolBar->setMouseTracking(true);
- ui->mainToolBar->installEventFilter(this);
- }
- }
- bool MainWindow::eventFilter(QObject *obj, QEvent *event)
- {
- // if (obj == ui->btnAddDoctor){
- // if (ev->type() == QEvent::Enter){ // над кнопкой
- // // ...
- // } else if (ev->type() == QEvent::Leave) // вне проекции кнопки
- // // ...
- // }
- // }
- if (obj == ui->mainToolBar){
- // QAction *listUser = static_cast<QAction*>(ui->actionViewListUsers);
- // QAction *listUser = static_cast<QAction*>(ui->actionViewListDoctors);
- // int px = ui->mainToolBar->actionGeometry(listUser).x();
- // int py = ui->mainToolBar->actionGeometry(listUser).y();
- // ... но это не то что надо ...
- }
- return false;
- }
2
252
Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
- Соңғы пікірлер
- AKСәуір 1, 2025, 11:41 Т.Ж.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPНаурыз 9, 2025, 4:14 Т.Қ.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМҚар. 22, 2024, 9:51 Т.Қ.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Енді форумда талқылаңыз
- DTСәуір 14, 2025, 3:38 Т.Қ.Всем привет! На Qt 6.8 MinGW пытаюсь сделать управление подключением WiFi из программы. Пока делаю поддержку Windows, но так же хочу в дальнейшем внедрить и поддержку Linux/MacOS. Для…
- fАқп. 15, 2025, 1:46 Т.Қ.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
Добрый день.
Проверяйте event на тип события.ю например на движение курсора.
Также есть ещё несколько типов событий мыши. Смотрите документацию
Спасибо за наводку, но никак не могу разобраться.
Пытаюсь отследить движение курсора...
... получаю данные о курсоре при движении в проекции mainToolBar , но возникает проблема - как только курсор находится над действием(кнопкой) QToolBar данные(x,y) не считываются.
Ну и возникает вопрос как определить что курсор находится над действием(кнопкой) QToolBar ?
Свойство setMouseTracking нельзя установить QAction ( "ui->actionViewListUsers" ). Как быть в данной ситуации ?
Необходимо реализовать(пример):
- при наведение курсора на "ui->actionViewListUsers" выводить уведомление или подсказку в стиле popUp
- при наведение курсора на "ui->actionViewListDoctors" выводить информ.сообщение через QMessageBox
Наследуйтесь от QToolBar и переопределите методы mouse событий.
Проще будет заменить QToolBar на свой, чем впихивать сторонний фильтер из окна.
Спасибо за наводку и за совет.
В итоге:
Пожалуйста... хотя это не наследование от класса, но да ладно, нашли решение и хорошо.