2

X11 では、Qt はフルカラーのアイコン テーマを可能にする Xcursor ライブラリをサポートします。カーソルを変更できます:

QPixmap cursor(":/res/cursor.png");
mCursor = QCursor(cursor,-1,-1);
setCursor(mCursor);

しかし、QWSでは効果が非常に悪いです。QWSでカーソルの形状を変更したいです。フルカラー カーソルを使用するために libxcursor/xcursor-dev などを arm 9 システムにインストールできません。そこで、Qt-embedded-opensoure を修正してみます。

/* src/corelib/global/qnamespace.h */
    enum CursorShape {
        ArrowCursor,
        UpArrowCursor,
        CrossCursor,
        WaitCursor,
        IBeamCursor,
        SizeVerCursor,
        SizeHorCursor,
        SizeBDiagCursor,
        SizeFDiagCursor,
        SizeAllCursor,
        BlankCursor,
        SplitVCursor,
        SplitHCursor,
        PointingHandCursor,
        ForbiddenCursor,
        WhatsThisCursor,
        BusyCursor,
        OpenHandCursor,
        ClosedHandCursor,
        LastCursor = ClosedHandCursor,
        BitmapCursor = 24,
        CustomCursor = 25 
};

ArrowCursor を MyCursor に置き換えたい。どうすれば交換できますか? それは .png ですか?または.jpg?それに関するリソースが見つかりません。返信ありがとうございます。

4

1 に答える 1

2

あなたはそれをハードコーディングすることができます。これはデモンストレーションするための完全なプログラムです:

#include <QtGui/QApplication>
#include <QtGui/QWidget>
#include <QtGui/QCursor>

static const char *const cursor_xpm[] = {
    "15 15 3 1",
    "   c None",
    ".  c #000000",
    "*  c #aa0000",
    "     .....     ",
    "   ..*****..   ",
    "  .   ***   .  ",
    " .    ***    . ",
    " .    ***    . ",
    ".     ***     .",
    ".    *****    .",
    ".*************.",
    ".    *****    .",
    ".     ***     .",
    " .    ***    . ",
    " .    ***    . ",
    "  .   ***   .  ",
    "   ..*****..   ",
    "     .....     "
};

int main(int argc, char* argv[]){

  QApplication app(argc, argv);
  QCursor myCursor(cursor_xpm);
  QWidget widget;
  widget.setCursor(myCursor);
  widget.show();
  return app.exec();
}

値を取得するためにに変換pngするxpmのはそれほど難しいことではありません。

于 2011-12-29T04:28:53.897 に答える