DaDiao444 2018-11-13 14:08 采纳率: 0%
浏览 859

QT paintEvent 中的一个int值 怎么通过图形界面输入?

就是下面的n值,先谢谢大佬们了

 void MainWindow::paintEvent(QPaintEvent *)
{
    int D=5;
    int n;//这个值
    point *p=new point[n];
    QPainter painter(this);
    QPen pen;
    pen.setColor(Qt::blue);
    pen.setWidth(6);
    painter.setPen(pen);
    QPointF *pointf=new QPointF [n];
    srand((unsigned int)(time(0)));
    for (int i=0; i<n; ++i)
    {
        p[i].x=rand()%1000+1;
        p[i].y=rand()%1000+1;
        pointf[i].setX(p[i].x);
        pointf[i].setY(p[i].y);
    }
    painter.drawPoints(pointf, n);
    point ans[2];
    double dismin1 = closestpoint(p, n, ans[0], ans[1]);
    double dismin2 = closestpointBF(p,n);
    pen.setColor(Qt::red);
    pen.setWidth(4);
    painter.setPen(pen);
    painter.drawLine(ans[0].x,ans[0].y,ans[1].x,ans[1].y);
    std::string str1="The shortest distance is "+std::to_string(dismin1)+"   glass state:broken    point1:("+std::to_string(ans[0].x)+","+std::to_string(ans[0].y)+")  point2:("+std::to_string(ans[1].x)+","+std::to_string(ans[1].y)+")";
    std::string str2="The shortest distance is "+std::to_string(dismin1)+"   glass state:not broken    point1:("+std::to_string(ans[0].x)+","+std::to_string(ans[0].y)+")  point2:("+std::to_string(ans[1].x)+","+std::to_string(ans[1].y)+")";
    std::string str3="Brute Force:"+std::to_string(dismin2)+"   Divide&Conquer:"+std::to_string(dismin1);
    QString qstr1 = QString::fromStdString(str1);
    QString qstr2 = QString::fromStdString(str2);
    QString qstr3 = QString::fromStdString(str3);
    if(dismin1<D)
        painter.drawText(150, 1050, qstr1);
    else
        painter.drawText(150, 1050, qstr2);
    painter.drawText(350, 1075, qstr3);
    //delete []p;
}

  • 写回答

1条回答 默认 最新

  • hcf134a 2018-11-14 01:12
    关注

    实在不行把这个 n 变为 全局变量。写在外面,让图形界面和paintEvent 都可以修改。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog