c++ - 为什么将小部件设置为中心时不显示场景
问题描述
我在显示两个标签时遇到问题,标签“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,这让我有点困惑。
感谢您的回答
解决方案
您肯定没有以正确的方式使用所有这些小部件。您不需要标签来显示 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
希望对您有所帮助。
推荐阅读
- php - 如何通过 PHP CURL POST 上传文件
- javascript - 用于书签的 Chrome 扩展 API
- reactjs - 如何防止 Visual Studio 代码在我的 JSX 中放置换行符?
- reporting-services - SSRS 无法识别条形码表达式中的数据集
- excel - 如何添加 COUNTIFS,我查看了其他主题但没有用
- java - java程序不会输出单词
- reactjs - redux 状态如何改变但组件没有
- reactjs - React make 组件显示在列中
- python - 使用 SWIG 包装“变体”结构/联合
- python - Pandas 将每个位置的缺失日期(字符串)替换为 0