1

win7 で非常に単純なアプリケーションを開発し、win8 で実行しています。win7 で実行すると、QGraphicsObjectサブクラスによって描画されたピックスマップが表示されます。ただし、exeとdllをタブレットにコピーすると、ピックスマップは表示されませんが、他のすべては同じです。

もう 1 つの問題は、アプリケーションを終了すると、予期せず閉じられたと表示されることです。

関連パーツはこちら

myImage::myImage(QGraphicsObject *parent) :
QGraphicsObject(parent)
{
    pxm = new QPixmap("://images/flower.jpg");
    setScale(0.5);
}

QRectF myImage::boundingRect() const
{
    QRectF rect(0,0,pxm->width(),pxm->height());
    return rect;
}

void myImage::paint( QPainter* painter,
                     const QStyleOptionGraphicsItem* /*option*/,
                     QWidget* /*widget*/ )
{
    painter->drawPixmap( 0, 0, pxm->width(), pxm->height(), *pxm );
}

そして、ここに主な機能があります

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

    QGraphicsScene scene;

    myImage img;
    scene.addItem(&img);

    QGraphicsView view(&scene);

    QWidget window;
    window.setFixedHeight(400);
    window.setFixedWidth(500);
    window.setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);

    QPushButton button("Quit");
    QObject::connect(&button,SIGNAL(clicked()),&app,SLOT(quit()));

    QVBoxLayout layout;
    layout.addWidget(&view);
    layout.addWidget(&button);

    window.setLayout(&layout);
    window.show();

    return app.exec();
}
4

1 に答える 1

0

ここでの問題は、Qt にネイティブではない jpeg 画像を使用していることです。Qt をインストールすると、"imageformats" というフォルダーを含む plugins フォルダーが見つかります。ライブラリのフォルダーを実行可能ファイルのパスにコピーすると (Windows を想定)、これは機能するはずです。同様の議論がここにあります。

または、jpeg とは別の画像形式を使用します。

于 2013-08-28T12:22:11.820 に答える