2016-02-21 4 views
1

Класс QCursor предоставляет методы получения и установки QPixmap или QBitmap на курсор. Я могу создать курсор из одной из стандартных форм, например. Qt::ArrowCursor. Однако, если я это сделаю, я не могу получить pixmap/bitmap курсора!Qt: Получить стандартный курсор pixmap

QCursor cursor(Qt::ArrowCursor); 
qDebug() << cursor.pixmap().isNull() 
     << cursor.bitmap() 
     << cursor.mask(); 

будет генерировать выходной сигнал

true 0x00 0x00 

Я знаю, что документация говорит, что это невозможно, но мне нужно, чтобы получить растровое изображение/значок/изображение/анимация/независимо от конкретного курсора.

Итак, есть ли способ получить значок стандартного курсора из Qt? Мне интересно, потому что если вы перетащите элемент из QListView, он покажет, как стандартный курсор, так и изображение того, что я перетаскиваю!

+1

В соответствии с документацией это невозможно –

+1

Стандартный курсор не обязательно * имеет * pixmap. Например, он может быть анимированным. –

ответ

1

Обычный и простой, вы не можете.

QPixmap QCursor::pixmap() const

Возвращает курсор растровое изображение. Это допустимо только в том случае, если курсор является курсором pixmap.

Причина в том, что для встроенных курсоров Qt просто просит операционную систему использовать эту конкретную форму с помощью символических констант, не обращаясь к фактической pixmap.

+1

Я знаю это много, но могу ли я получить pixmap? – Felix

+0

Не использовать Qt API. Я понятия не имею о конкретных платформах. – peppe