问题描述
使用以下代码,QScatterSeries 点在 QChartView 中显示,如图所示。
#include <QtCharts>
#include <QApplication>
using namespace QtCharts;
class ChartView : public QChartView
{
Q_OBJECT
public:
explicit ChartView(QWidget *parent = 0) : QChartView(parent) {
QScatterSeries *scatterSeries = new QScatterSeries();
scatterSeries->append(2170000.,700000.);
scatterSeries->append(2180000.,710000.);
scatterSeries->append(2190000.,720000.);
scatterSeries->setName("Points");
scatterSeries->setMarkerShape(QScatterSeries::MarkerShapeRectangle);
scatterSeries->setMarkerSize(20.);
chart()->addSeries(scatterSeries);
chart()->createDefaultAxes();
}
virtual ~ChartView(){};
};
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
ChartView w;
w.show();
return a.exec();
}
// to avoid "Undefined reference to 'vatable for ... '"
// according to https://stackoverflow.com/questions/3065154/undefined-reference-to-vtable
#include "main.moc"
但是,我想改进两个方面:
-
我希望所有标记都完整显示。如您所见,与中心的点标记相比,角上的点标记仅部分显示。我知道我可以手动使用
chart()->axes(Qt::Horizontal).first()->setRange(2169000.,2191000.); chart()->axes(Qt::Vertical).first()->setRange(699000.,721000.);
什么是自动方法? -
我想在调整窗口大小时将 X、Y 纵横比保持为 1。我试过
chart()->setPlotArea(QRectF(50,50,400,400));
之类的东西,但它弄乱了整个情节,甚至是背景颜色。
有人能指出我正确的方向吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)