首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >qt c++ q画家与QVector

qt c++ q画家与QVector
EN

Stack Overflow用户
提问于 2015-04-15 13:53:55
回答 2查看 283关注 0票数 0

所以我有一个名为xarray的QVector

代码语言:javascript
复制
QVector< QString > xarray;

现在我想画数组

代码语言:javascript
复制
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?

我试过了

代码语言:javascript
复制
painter.drawEllipse(xarray[i], 10, 100, 100);

但是没有调用QPainter的功能。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-15 14:11:11

我想你是在找QString::toInt()

您有一个QStrings数组,但是您需要将一个int传递给drawEllipse(),这是接受int的重载。您需要将字符串转换为整数。

对代码的快速编辑会将其转换为:

代码语言:javascript
复制
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);
    }
 }

我并没有真的编译它,希望它能成功,你就会明白这个想法。

票数 1
EN

Stack Overflow用户

发布于 2015-04-15 14:09:19

一个简单的实现看起来可能是:

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29652178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档