所以我有一个名为xarray的QVector
QVector< QString > xarray;现在我想画数组
void MainWindow::paintEvent( QPaintEvent* e )
{
QPainter painter(this);
for(int i = 0; i < 5; i++)
{
qDebug() << "\r\narr : " <<QList<QString>::fromVector(xarray);
painter.drawEllipse(X, 10, 100, 100);
}
}我如何才能将数组给我的x comp?
我试过了
painter.drawEllipse(xarray[i], 10, 100, 100);但是没有调用QPainter的功能。
发布于 2015-04-15 14:11:11
我想你是在找QString::toInt()。
您有一个QStrings数组,但是您需要将一个int传递给drawEllipse(),这是接受int的重载。您需要将字符串转换为整数。
对代码的快速编辑会将其转换为:
void MainWindow::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
for(int i = 0; i < 5; i++)
{
qDebug() << "\r\narr : " <<QList<QString>::fromVector(xarray);
painter.drawEllipse(xarray[i].toInt(), 10, 100, 100);
}
}我并没有真的编译它,希望它能成功,你就会明白这个想法。
发布于 2015-04-15 14:09:19
一个简单的实现看起来可能是:
void MainWindow::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
for(int i = 0; i < 5; i++)
{
painter.drawEllipse(xarray[i].toFloat(), 10.0, 100.0, 100.0);
}
}在将QString值用作drawEllipse的参数之前,需要将它转换为drawEllipse值。
但在实际代码中,我强烈建议确保xarray中的值在使用它们之前可以转换为float。
https://stackoverflow.com/questions/29652178
复制相似问题