首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt QComboBox、QSpinBox、QGraphicsScene和Gant图问题

Qt QComboBox、QSpinBox、QGraphicsScene和Gant图问题
EN

Stack Overflow用户
提问于 2022-06-17 10:01:37
回答 1查看 51关注 0票数 0

我有一个问题,就是不了解如何在QComboBox、QSpinBox和QGraphicsScene之间建立相互依存关系,具体来说,我需要创建甘特的动态图表。我需要做以下几点:

1.根据选定的进程数量(如果选择了5个进程,只显示填写P1-P5进程的元素),只显示填充此数目的进程的元素。

2.对每个进程添加表示进程持续时间的长度(周期数)的QGraphicsRectItem,使其满足所选算法,从而指导添加到已经提到的QSpinBox中的信息。

我现在创建的代码如下所示,并通过对话框。我加入了所有的元素,如果有人能帮助我,他会非常感激的,谢谢你。

代码语言:javascript
复制
    Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    ui->comboBox_2;
    //Kreiranje scene
    scene=new QGraphicsScene(this);

    ui->graphicsView->setScene(scene);
    //Painter,velicina linija i boja
    QPainter painter(this);
    QPen mPen;
    mPen.setColor(Qt::blue);
    mPen.setWidth(3);
    painter.setPen(mPen);

    //X linija i strelice
    scene->addLine(-470,50,300,50,mPen);
    scene->addLine(280,70,300,50,mPen);
    scene->addLine(280,30,300,50,mPen);

    //Y linija i strelice
    scene->addLine(-435,-285,-435,85,mPen);
    scene->addLine(-435,-284,-420,-260,mPen);
    scene->addLine(-435,-284,-448,-260,mPen);

    //Text za procese
    QGraphicsTextItem *text1 = scene->addText("Procesi", QFont("Arial", 14));
    text1->setDefaultTextColor(Qt::blue);
    text1->setPos(-415, -280);

    //Text za broj ciklusa
    QGraphicsTextItem *text2 = scene->addText("Broj ciklusa", QFont("Arial", 14));
    text2->setDefaultTextColor(Qt::blue);
    text2->setPos(165, 50);
}

Dialog::~Dialog()
{
    delete ui;
}

void Dialog::on_pushButton_clicked()
{
    //Text za P1,P2,P3,P4,P5,P6,P7
    QGraphicsTextItem *pro1 = scene->addText("P1", QFont("Arial", 9));
    pro1->setDefaultTextColor(Qt::blue);
    pro1->setPos(-467, -260);

    QGraphicsTextItem *pro2 = scene->addText("P2", QFont("Arial", 9));
    pro2->setDefaultTextColor(Qt::blue);
    pro2->setPos(-467, -215);

    QGraphicsTextItem *pro3 = scene->addText("P3", QFont("Arial", 9));
    pro3->setDefaultTextColor(Qt::blue);
    pro3->setPos(-467, -170);

    QGraphicsTextItem *pro4 = scene->addText("P4", QFont("Arial", 9));
    pro4->setDefaultTextColor(Qt::blue);
    pro4->setPos(-467, -125);
    QGraphicsTextItem *pro5 = scene->addText("P5", QFont("Arial", 9));
    pro5->setDefaultTextColor(Qt::blue);
    pro5->setPos(-467, -80);

    QGraphicsTextItem *pro6 = scene->addText("P6", QFont("Arial", 9));
    pro6->setDefaultTextColor(Qt::blue);
    pro6->setPos(-467, -35);

    QGraphicsTextItem *pro7 = scene->addText("P7", QFont("Arial", 9));
    pro7->setDefaultTextColor(Qt::blue);
    pro7->setPos(-467, 10);
}
EN

回答 1

Stack Overflow用户

发布于 2022-06-18 07:18:24

现在,我需要解释如何生成动态QGraphicsRectItem长度。我做了这个:

代码语言:javascript
复制
QGraphicsRectItem *re = new QGraphicsRectItem (); 
re - > setRect (50,100,50,50);

现在,您如何选择一个数字在纺丝盒中,将长度设置为这个QGraphicsRectItem?

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

https://stackoverflow.com/questions/72657627

复制
相关文章

相似问题

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