C++ QT c++;图表列表
我正在创建图表的动态列表,并将它们推送到ui.verticalLayout->addWidget(chartView,Qt::AlignCenter);但随着我添加的项目越来越多,它们变得越来越小,这是因为它们适合垂直布局的大小。我试图找到更多关于添加到列表或smth之类的信息,但没有意识到与图表无关。以下是代码: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();
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)
还有一个用于beautyQGraphicsLayoutItem::setGeometry(const QRectF&rect)
如果要尝试调整大小QChartView
试试看:
1) QWidget::setMinimumSize(int minw,int minh)
2) QWidget::setMaximumSize(int-maxw,int-maxh)
创建一个图表,并将图表添加到该图表中但随着我添加的项目的增多,它们变得越来越小,因为它们适合垂直布局的大小。这就是QVBoxLayout
的工作原理。它首先从其子级确定所需的最小大小,并从父布局/小部件请求该大小。在随后的步骤中,它将内容布局到实际获得的大小。获取的大小可能是请求的值,或者由于其他限制或多或少。如果想保留图表的初始大小,可以考虑在小部件层次结构中插入A。