我在QValueAxis中使用QtCharts时出错了
断言: painting\qrasterizer.cpp文件中的“宽度> 0.0”,第761行
当QBarSet值都是0时,就会发生这种情况。
下面我有一个包含最小必要代码的示例:
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QChart *chart = new QChart;
QBarSeries *series = new QBarSeries(chart);
QBarSet *set = new QBarSet("BarSet", series);
series->append(set);
QValueAxis *valueAxisX = new QValueAxis(chart);
QChartView *chartView = new QChartView(chart);
for(int i = 0; i < 24; ++i) {
set->append(0); //error
//if I set like set->append(1) or anything just to make sure the values are not all 0, there will be no error.
}
chart->addSeries(series);
chart->setAxisX(valueAxisX, series);
QMainWindow window;
window.setCentralWidget(chartView);
window.resize(420, 300);
window.show();
return a.exec();
}我的程序将从一个QBarSet动态启动QMap。如下所示:
for(auto it = map.cbegin(); it != map.cend(); ++it) {
set->append(it.value());
}当程序启动时,QMap会启动如下内容:
QMap(("First", 0)("Second", 0)...)有时,由于程序的使用,QMap不会添加值,那么所有的QBarSet值都将被初始化到0。然后程序就会因为这个错误而崩溃。
那么,当QBarSet值全部初始化到0时,如何避免此错误?
发布于 2018-05-24 08:19:16
正如错误所言:
断言:“宽度> 0.0”
你需要一个大于零的值。
还有QBarSet::append,
无效QBarSet::追加(const qreal值)
期望有一个qreal或double值。
也许您希望最初将其设置为0.1:
set->append(0.1);https://stackoverflow.com/questions/50504031
复制相似问题