如果我想在第一时间使用QGraphicsView::scene()
,语法会是什么样子?我的目标是使用滑块更改图形视图对象中pixmap
的比例。我想使用QgraphicsView::scene()
和QScene::itemsAt()
等来查找原始pixmap
,然后使用QPixmap::scaled()
(我发现这是确保我的化妆品属性设置的唯一方法pixmap
成立。但是我遇到了QGraphicsView::scene()
语法的问题。我的尝试如下。我也在为上下文创建一个Qt小部件应用程序。
QGraphicsViewScene graphicsScene = ui->PixmapView->scene();
QGraphicsPixmapItem graphicsPixmapItem = graphicsScene.itemAt(0, 0);
编辑 如果我将我的QPixmap pixmap *存储为成员变量,我不完全确定如何实现它仍然在我的插槽的范围内。
编辑 静态成员变量?
答案 0 :(得分:1)
您可以将QGraphicsPixmapItem
对象设为班级的成员变量。然后,您就可以从任何类成员函数访问它。
这是一个简单的例子:
class MyClass : public QWidget
{
Q_OBJECT
public:
MyClass(QWidget *parent = nullptr) : QWidget(parent)
{
// create graphics view, scene, etc..
}
public slots:
void openActionTriggered()
{
...
myItem = scene->addPixmap(myPixmap); // you can create your item however you want.. this is just an example
}
void mySlot()
{
if(myItem)
{
// do something with myItem
}
}
private:
QGraphicsPixmapItem *myItem = nullptr; // myItem is a member variable of
QGraphicsScene *scene = nullptr; // I made scene a member variable so it can be accessed from any member functions
}