You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QChartView放入QTabWidget后异常扩张挤占QOpenGLWidget空间怎么解决

我暂时无法理解为什么QChartView放入QTabWidget后会出现异常扩张的问题。

以下是QChartView隐藏时应用的界面截图,此时尚未出现扩张问题:
界面截图

应用中黑色显示区域为QOpenGLWidget控件。

当我切换到QChartView所在标签页后,它会逐渐增大尺寸,直到QOpenGLWidget被完全挤占隐藏,效果如下:
异常扩张后截图

当QChartView和QOpenGLWidget直接放在同一个QVBoxLayout中时,不会出现该问题;只有将QChartView添加到QTabWidget内部才会触发该现象。我希望找到方法让QChartView不再异常扩张,和本示例中的QTextEdit等普通控件遵循相同的缩放规则。

以下是可复现该问题的最小示例代码:

#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);

  // 主窗口
  QMainWindow main_window;
  main_window.resize(1280, 720);
  main_window.show();

  // 中心部件
  QWidget central_widget(&main_window);
  main_window.setCentralWidget(&central_widget);
  QVBoxLayout layout(&central_widget);
  central_widget.setLayout(&layout);

  // OpenGL部件
  QOpenGLWidget gl_widget(&central_widget);
  gl_widget.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
  layout.addWidget(&gl_widget);

  // 标签部件
  QTabWidget tab_widget(&central_widget);
  layout.addWidget(&tab_widget);

  // 日志页
  QTextEdit text_edit(&tab_widget);
  text_edit.setReadOnly(true);
  tab_widget.addTab(&text_edit, "Log");

  // 图表视图页
  QtCharts::QChartView chart_view(&tab_widget);
  tab_widget.addTab(&chart_view, "Chart");

  return app.exec();
}

内容的提问来源于stack exchange,提问作者tay10r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:27:02