首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用QGraphics场景显示图像

使用QGraphics场景显示图像
EN

Stack Overflow用户
提问于 2011-11-25 20:16:18
回答 1查看 612关注 0票数 1

在QGraphicsScene中显示加载的图像时出现问题。

代码语言:javascript
复制
CTextBox::CTextBox(QWidget* parent /* = NULL */)
{   
QPixmap image;

image.load("basketball.png");

grid = new QGridLayout();
grid->setSpacing(1);    
textBrowser = new QTextEdit(this);
treeView = new QTreeView;

treeLabel = new QLabel;
treeLabel->setText("Tree View:");

debugLabel = new  QLabel;
debugLabel->setText("Debug:");  

standardModel = new QStandardItemModel;
rootNode = standardModel->invisibleRootItem();
treeView->setModel(standardModel);



QGraphicsPixmapItem pixmapitem(image);




//scene.addText("Graphics");
scene.addItem(&pixmapitem);

//rect = scene.addRect(QRectF(0,0, 100, 100));

//QGraphicsItem *item = scene.itemAt(50, 50);
widget = new QWidget();
view = new QGraphicsView;
view->setScene(&scene);
view->setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));




//proxy = scene.addWidget(widget);
//label = new QLabel();

grid->addWidget(textBrowser, 1, 0);
grid->addWidget(debugLabel, 0, 0);
grid->addWidget(treeView, 1, 1);
grid->addWidget(treeLabel, 0, 1);
//grid->addWidget(&image, 2,0);
//grid->addWidget(view, 2, 0);
//grid->addWidget(widget, 2, 0);
//grid->addWidget(proxy, 2,0);

view->show();

//widget->setLayout(view);

//widget->show();
setLayout(grid);


//label->addItem()
}

基本上,当我尝试在QGraphicsScene中加载图像时,它看起来会放大到图像的大小,但显示的是一个白色屏幕。我可以添加文本到图形场景,这将正确显示。现在,如果我尝试将图像添加到另一个小部件上的标签中,它显示得很好。你知道为什么吗?

干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-25 20:31:03

您看不到它,因为您传递了一个对构造函数的本地对象的引用。在你的构造函数结束后,这个像素映射项将立即被销毁。请改用动态分配。

代码语言:javascript
复制
QGraphicsPixmapItem* pixmapitem = new QGraphicsPixmapItem(image);
scene.addItem(pixmapitem);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8269010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档