Изменение формы курсора для элементов QComboBox

Я хочу установить форму курсора для QComboBox и его предметы. С setCursor влияет только LineEdit часть QComboBoxКак получить доступ к представлению элементов, чтобы изменить форму курсора?

QComboBox *combo = new QComboBox();
combo->addItem("One");
combo->addItem("Two");
combo->addItem("Three");
combo->setCursor(Qt::PointingHandCursor); // changes cursor only for LineEdit part, on popup cursor is still arrow
combo->view()->setCursor(Qt::PointingHandCursor); // does not affect popup view

мы используем Qt 5.5.1

2

Решение

Этот код работает:

combo->installEventFilter(this);
//...

bool MainWin::eventFilter(QObject *obj, QEvent *ev)
{
if( obj == combo
&& (ev->type() == QEvent::Enter
|| ev->type() == QEvent::HoverMove) )
{
combo->setCursor(Qt::PointingHandCursor);
combo->view()->setCursor(Qt::PointingHandCursor);

return true;
}
return QMainWindow::eventFilter(obj, ev);
}

Увидеть Фильтры событий Qt

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]