首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展QChartView

扩展QChartView
EN

Stack Overflow用户
提问于 2021-09-17 17:08:53
回答 1查看 76关注 0票数 2

对于为什么当QChartView放在QTabWidget中时会扩展,我有点不知所措。

这是QChartView没有扩展时的应用程序的图片(因为它是隐藏的)。

这款应用程序的黑色部分是QOpenGLWidget

当我单击图表视图时,它的大小将逐渐增加,直到隐藏QOpenGLWidget

QChartView仅在带有QOpenGLWidgetQVBoxLayout中时,则不会出现此效果。只有当我在QTabWidget中添加QChartView时,才会发生这种情况。我正在尝试找出如何让QChartView不扩展,并像其他小部件一样调整大小(比如本例中的QTextEdit小部件)。

下面是代码,它是作为重现效果的最小示例编写的。

代码语言:javascript
复制
#include <QApplication>
#include <QChart>
#include <QChartView>
#include <QMainWindow>
#include <QOpenGLWidget>
#include <QTabWidget>
#include <QTextEdit>
#include <QVBoxLayout>

int
main(int argc, char** argv)
{
  QApplication app(argc, argv);

  // Main Window

  QMainWindow main_window;

  main_window.resize(1280, 720);

  main_window.show();

  // Central Widget

  QWidget central_widget(&main_window);

  main_window.setCentralWidget(&central_widget);

  QVBoxLayout layout(&central_widget);

  central_widget.setLayout(&layout);

  // OpenGL Widget

  QOpenGLWidget gl_widget(&central_widget);

  gl_widget.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

  layout.addWidget(&gl_widget);

  // Tab Widget

  QTabWidget tab_widget(&central_widget);

  layout.addWidget(&tab_widget);

  // Log

  QTextEdit text_edit(&tab_widget);

  text_edit.setReadOnly(true);

  tab_widget.addTab(&text_edit, "Log");

  // Chart View

  QtCharts::QChartView chart_view(&tab_widget);

  tab_widget.addTab(&chart_view, "Chart");

  return app.exec();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-17 18:29:29

之所以会出现这个问题,是因为QChartView具有扩展sizePolicy而不是QOpenGLWidget,因此当它变得可见时,它会展开,从而隐藏另一个小部件。解决方案是设置与布局中的每个小部件相关联的拉伸因子:

代码语言:javascript
复制
layout.addWidget(&gl_widget, 1);
代码语言:javascript
复制
layout.addWidget(&tab_widget, 1);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69227220

复制
相关文章

相似问题

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