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(¢ral_widget); QVBoxLayout layout(¢ral_widget); central_widget.setLayout(&layout); // OpenGL部件 QOpenGLWidget gl_widget(¢ral_widget); gl_widget.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); layout.addWidget(&gl_widget); // 标签部件 QTabWidget tab_widget(¢ral_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
相关产品推荐
相关产品推荐

