qt c++ qpainter 与 QVector

qt c++ qpainter with QVector

所以我有一个 QVector 叫做 xarray

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的函数。

一个简单的实现可能是这样的:

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 值转换为 float 值,然后再将其用作 drawEllipse

的参数

但在实际代码中,我强烈建议确保 xarray 中的值在使用前可以转换为 float

我想你正在寻找 QString::toInt()

您有一个 QString 数组,但您需要将一个 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);
    }
 }

我实际上并没有编译它,希望它能起作用并且你明白了。