gpt4 book ai didi

c++ - QGraphicsObject 不显示 QPixmap

转载 作者:太空宇宙 更新时间:2023-11-04 14:02:43 25 4
gpt4 key购买 nike

我正在 win7 上开发一个非常简单的应用程序并在 win8 上运行。当我在 win7 上运行时,它显示了由我的 QGraphicsObject 子类绘制的像素图。然而,当我将 exe 和 dll 复制到我的平板电脑时,它不显示像素图,但其他一切都是一样的。

另一个问题是当我退出应用程序时它说意外关闭。

这是相关的部分

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

最佳答案

这里的问题是您使用的是 jpeg 图像,它不是 Qt 原生的。在 Qt 的安装中,您会发现一个插件文件夹,其中包含一个名为“imageformats”的文件夹。如果将库文件夹复制到可执行文件的路径(假设是 Windows),那么这应该可行。类似的讨论是 here .

或者,使用不同的图像格式为 jpeg。

关于c++ - QGraphicsObject 不显示 QPixmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18487079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com