Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QT c++;图表列表_C++_Qt_Qtcharts - Fatal编程技术网

C++ QT c++;图表列表

C++ QT c++;图表列表,c++,qt,qtcharts,C++,Qt,Qtcharts,我正在创建图表的动态列表,并将它们推送到ui.verticalLayout->addWidget(chartView,Qt::AlignCenter);但随着我添加的项目越来越多,它们变得越来越小,这是因为它们适合垂直布局的大小。我试图找到更多关于添加到列表或smth之类的信息,但没有意识到与图表无关。以下是代码: for (int i = 0; i < 5; i++) { QPieSeries* serie_pie = new QPieSeries();

我正在创建图表的动态列表,并将它们推送到ui.verticalLayout->addWidget(chartView,Qt::AlignCenter);但随着我添加的项目越来越多,它们变得越来越小,这是因为它们适合垂直布局的大小。我试图找到更多关于添加到列表或smth之类的信息,但没有意识到与图表无关。以下是代码:

for (int i = 0; i < 5; i++) {
        QPieSeries* serie_pie = new QPieSeries();
        double free_serie = 1.33;
        double used_serie = 3.1;


        serie_pie->append("Free", free_serie);
        serie_pie->append("Used", used_serie);

        QChart* chart_for_pie = new QChart();
        chart_for_pie->addSeries(serie_pie);
        chart_for_pie->setMargins(QMargins(0, 0, 0, 0));
        chart_for_pie->legend()->setAlignment(Qt::AlignRight);
        QChartView* chartView = new QChartView(chart_for_pie);
        chart_for_pie->setBackgroundVisible(false);
        chartView->setRenderHint(QPainter::Antialiasing);
        ui.verticalLayout->addWidget(chartView,Qt::AlignCenter);// add into another place :)

    }
for(int i=0;i<5;i++){
QPieSeries*系列=新的QPieSeries();
双自由度系列=1.33;
双重使用系列=3.1;
系列馅饼->附加(“免费”,免费系列);
系列饼->附加(“已使用”,已使用系列);
QChart*chart_for_pie=新QChart();
图表\u为\u饼图->添加系列(系列\u饼图);
图表用于饼图->设置边距(QMargins(0,0,0,0));
图表->图例()->setAlignment(Qt::AlignRight);
QChartView*图表视图=新的QChartView(图表用于饼图);
图表\u用于\u饼图->setBackgroundVisible(假);
图表视图->SetRenderInt(QPaint::抗锯齿);
ui.verticalLayout->addWidget(图表视图,Qt::AlignCenter);//添加到另一个位置:)
}

感谢您的帮助。

QChart
通过
QGraphicsWidget
继承。所以你可以尝试使用

1)
QGraphicsWidget::resize(qreal w,qreal h)

2)
QGraphicsWidget::resize(常量QSizeF&size)

还有一个用于beauty
QGraphicsLayoutItem::setGeometry(const QRectF&rect)

如果要尝试调整大小
QChartView

试试看:

1)
QWidget::setMinimumSize(int minw,int minh)

2)
QWidget::setMaximumSize(int-maxw,int-maxh)

创建一个图表,并将图表添加到该图表中

但随着我添加的项目的增多,它们变得越来越小,因为它们适合垂直布局的大小。这就是
QVBoxLayout
的工作原理。它首先从其子级确定所需的最小大小,并从父布局/小部件请求该大小。在随后的步骤中,它将内容布局到实际获得的大小。获取的大小可能是请求的值,或者由于其他限制或多或少。如果想保留图表的初始大小,可以考虑在小部件层次结构中插入A。