«Бағдарламада курсорды теңшеу» міндеті бағдарламаның дизайны талап етілсе немесе ойын бағдарламалық жасақтамасын әзірлеу жүріп жатқанда программист алдында туындайды және бұл дизайн мен атмосфераның мәселесіне айналады. ойын.
Qt ішіндегі курсорды теңшеу ойында немесе бағдарламада бар әрбір көрнекі нысан үшін теңшелетін курсорды орнатуды ғана қамтитын тривиальды тапсырма болып табылады. Меңзерді осы нысанның үстіне апарған кезде курсор нысанда курсор ретінде орнатылған кескінге сәйкес сыртқы түрін өзгертеді.
Терезе QWidget ішінен мұраланған әдепкі Qt жобасында қосымша тақырып файлдарын қосудың қажеті жоқ. Бар болғаны ресурстық файлдан QPixmap көмегімен QCursor класының объектісін жасау керек.
Ресурс файлдары ретінде сізге PNG кеңейтімі және 32x32 пиксель өлшемдері бар курсорлардың кескіндерін жасау керек. Бұл өлшем Qt құжаттамасында ұсынылған өлшем болып табылады, себебі ол әмбебап қолдау көрсетеді.
Бұл мысалда үш курсор кескіні пайдаланылады:
- cursorTarget.png - бұл курсор QGraphicsView; ішінде пайдаланылады.
- cursorArrowRed.png - бұл курсор тұтастай терезе аймағында пайдаланылады;
- cursorArrowGreen.png - бұл курсор түймелер аймағында пайдаланылады.
Курсорлар:
Курсорды өзгертіңіз
#include "widget.h" #include "ui\_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); // Создаём курсор цели из ресурсного файла QCursor cursorTarget = QCursor(QPixmap(":/cursor/cursorTarget.png")); ui->graphicsView->setCursor(cursorTarget); // Устанавливаем курсок цели /* Создаём курсор (Красная стрелка) и * сдвигаем горячую точку курсора на позици x = 0 y = 0 * */ QCursor cursorRed = QCursor(QPixmap(":/cursor/cursorArrowRed.png"), 0, 0); this->setCursor(cursorRed); // Устанавливаем курсор /* Создаём курсор (Зеленая стрелка) и * сдвигаем горячую точку курсора на позици x = 0 y = 0 * */ QCursor cursorGreen = QCursor(QPixmap(":/cursor/cursorArrowGreen.png"),0,0); ui->pushButton->setCursor(cursorGreen); // Устанавливаем курсор ui->pushButton\_2->setCursor(cursorGreen); // Устанавливаем курсор } Widget::~Widget() { delete ui; }