为什么将小部件设置为中央时不显示场景

时间:2019-02-26 19:31:17

标签: c++ qt qt5

我在显示两个标签时遇到问题,显示的标签“ label”没有问题(有一些水平调整的按钮),没有显示第二个标签“ label1”(其中包含具有视图的场景,在场景中,我有一个标题和一张图片)。这是我要使用的代码。

widget1 = new QWidget;
setCentralWidget(widget1);

label1 = new QLabel(widget1);
scene = new QGraphicsScene(label1);
vue = new QGraphicsView(scene);
label1->move(100,100);

label = new QLabel(widget1);
layout = new QHBoxLayout(label);
label->resize(500,100);

这是我第一次使用QGraphicsScene / View,这让我有些困惑。

感谢答案

1 个答案:

答案 0 :(得分:0)

您肯定没有正确使用所有这些小部件。 您不需要标签来显示QGraphcisView,也不需要QGraphicsScene成为标签的子级。

如果要显示,假设在中心小部件中有一个标签和一个视图,可以这样写:

//==== Central widget part
QWidget* widget = new QWidget(this);

setCentralWidget(widget);

//==== Graphics part
QGraphicsScene* scene = new QGraphcisScene(this);
QGraphicsView* view = new QGraphicsView(widget);

view->setScene(scene);

//==== Label part
QLabel* label = new QLabel(widget);

//==== Layout part
QHBoxLayout* layout = new QHBoxLayout(widget);

layout.addWidget(label);
layout.addWidget(view);

widget.setLatout(layout);

这应该在行中显示标签和图形视图。

如果允许我提供一些建议:在尝试使用QGraphics模块之前,您应该了解育儿系统。这是Qt的基石之一,您在这里做错了什么。从此处开始育儿系统:https://doc.qt.io/qt-5/objecttrees.html

此处为图形:https://doc.qt.io/qt-5/graphicsview.html

希望对您有帮助。