2013-08-28 69 views
1

我正在win7上開發一個非常簡單的應用程序,並在win8上運行。 當我在win7上運行時,它顯示了由我的QGraphicsObject子類繪製的像素圖。但是,當我將exe和dll複製到我的平板電腦時,它不會顯示像素圖,但其他所有內容都是相同的。QGraphicsObject不顯示QPixmap

另一個問題是,當我退出應用程序意外關閉時。

下面是相關的部分

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(); 
} 

回答

0

這裏的問題是,您使用的是JPEG圖像,這是不是本機的Qt。在Qt的安裝中,你會發現一個名爲「imageformats」的文件夾。如果您將庫的文件夾複製到可執行文件的路徑(假定Windows),那麼這應該起作用。類似的討論是here

或者,對jpeg使用不同的圖像格式。

+0

謝謝你解決了這個問題 – uLtRaLoVeR