QGraphicsObject 不显示 QPixmap
QGraphicsObject doesn't display QPixmap
我正在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),那么这应该可以工作。这里也有类似的讨论。
或者,使用与jpeg不同的图像格式。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 程序崩溃并显示"std::out_of_range"错误
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 从数据库实时显示QT c++中的数据
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 显示错误输出的简单数组排序程序
- Qt自定义QPush按钮未显示在布局上
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 显示基于用户输入的整数的字符
- 在qpixMap中显示一个CV :: MAT(键入CV_32F)
- 如何使用QVector的QPixmap显示图像?
- QPIXMAP图像未显示
- QPixmap图像文件未显示在QGraphicsScene上
- QGraphicsObject 不显示 QPixmap
- 需要在qlist中存储多个矩形,并将它们全部显示在QPixmap上