gpt4 book ai didi

c++ - 扩展 QChartView

转载 作者:行者123 更新时间:2023-12-05 04:44:59 30 4
gpt4 key购买 nike

对于为什么 QChartView 放在 QTabWidget 中时会扩展,我有点迷惑。

这是 QChartView 未展开(因为它被隐藏)时应用程序的图片。

enter image description here

应用程序的黑色部分是 QOpenGLWidget

当我点击图 TableView 时,它会逐渐变大,直到 QOpenGLWidget 被隐藏。

enter image description here

QChartView 只是在 QVBoxLayoutQOpenGLWidget 中时,则不会发生此效果。只有当我在 QTabWidget 中添加 QChartView 时,才会发生这种情况。我正在尝试弄清楚如何让 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);

// 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();
}

最佳答案

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

layout.addWidget(&gl_widget, 1);
layout.addWidget(&tab_widget, 1);

关于c++ - 扩展 QChartView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69227220/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com