コード例 #1
0
ファイル: texttools.cpp プロジェクト: uly55e5/PCover
void TextTools::setFont()
{
    QGraphicsTextItem * item = _cover->selectedTextItem();
    if (item == 0)
    {
        QMessageBox::warning(this,"Kein Text markiert","Es wurde kein Text ausgewählt.");
        return;
    }
    bool * ok;
    QFont font = item->font();
    item->setFont(QFontDialog::getFont(ok,font));
}
コード例 #2
0
ファイル: mainwindow.cpp プロジェクト: MGerasimchuk/CryptoT
void MainWindow::create_graphic()
{
    ui->graphicsView->setRenderHint(QPainter::Antialiasing, true);
   /* int sizew=1536;//1400;
    int sizeh=668;
    int space=40;

    int const_for_ky=25.5;
    int const_for_kx=10.971;*/

    int sizew=1036;//1400;
    int sizeh=536;
    int space=40;

    int const_for_ky=20.5;
    int const_for_kx=10.971;

    int shift_y=300;




    sc=new QGraphicsScene(0,0,sizew,sizeh,ui->graphicsView);

    QPen pen(QBrush(QColor(139,134,130),Qt::SolidPattern),4,Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin);
    pen.setColor(QColor(139,119,101));
    sc->addLine(space,space,space,sizeh-space,pen);
    sc->addLine(space,sizeh-space,sizew-space,sizeh-space,pen);

    float ky=sizeh*const_for_ky;//18000;
    float kx=sizew/const_for_kx;//140;
    float x1,y1,x2,y2;



    //mu_lines
    int max_len=45;
    QMap<int,QString> mu_text;
    for(int i=0;i<periods.size();i++)
    {
        if(mu_text[periods[i].nod].length()>max_len)
        {
            if(mu_text[periods[i].nod][mu_text[periods[i].nod].length()-1]!='.')
                mu_text[periods[i].nod]+=" ...";
            continue;
        }

        if(mu_text[periods[i].nod].length()==0)
            mu_text[periods[i].nod]+=periods[i].substr;//+QString().sprintf("(%d)",periods[i].indexes.size());
        else
            mu_text[periods[i].nod]+="," + periods[i].substr;//+QString().sprintf("(%d)",periods[i].indexes.size());
    }


    QMap<int,int> temp;
    for(int i=periods.size()-1;i>=0;i--)
    {
        if(temp[periods[i].nod]==0)
        {
            temp[periods[i].nod]=1;
            x1 = space + (periods[i].nod-1)*kx;
            y1 = (temp.size()+1)*space;

            x2 = space + (periods[i].nod-1)*kx;
            if(periods[i].nod-1<corr_table.size())
                y2 = sizeh + shift_y - space - (float)(corr_table[periods[i].nod-1][1]*ky);
            else
                y2 = sizeh + shift_y - space - (float)(corr_table[corr_table.size()-1][1]*ky);

            QPen p(QColor(139,119,101,200),2,Qt::DotLine);
            if(i==mu)
                p.setColor(QColor(102,205,0));

            int ind=(periods[i].nod>7)?(corr_table.size()-1):(periods[i].nod-1);
            if(icx>corr_table[ind][3] && icx<corr_table[ind][2])
                p.setColor(QColor(102,205,0));
            else
            {
                if(icx>corr_table[ind][1] && icx<corr_table[ind][3])
                    p.setColor(QColor(255,215,0));
                else
                    p.setColor(QColor(178,34,34));
            }



            sc->addLine(x1,y1,x2,y2,p);
            sc->addLine(x1-space/4,y1+space/4,(x1-space/4)+30+(mu_text[periods[i].nod].length()*7),y1+space/4,p);



            QGraphicsTextItem *t;
            t=new QGraphicsTextItem(mu_text[periods[i].nod]);
            t->setDefaultTextColor(QColor(p.color().red()-30,p.color().green()-30,p.color().blue()));//(238,130,98));
            t->setPos(x1,y1+space/4-22);
            sc->addItem(t);



        }
    }




    //icx
    x1=space;
    y1=sizeh + shift_y - space - (float)(icx*ky);
    x2=sizew-space;
    y2=sizeh + shift_y - space - (float)(icx*ky);
    sc->addLine(x1,y1,x2,y2,QPen(QColor(139,119,101,200),2,Qt::DashLine));


    int per_lim;
    if(periods.size()!=0 && corr_table.size()<periods[0].nod)
    {
        per_lim=periods[0].nod-1;
    }
    else
        per_lim=corr_table.size()-1;

    //оси и точки и icmni sr max
    pen.setColor(QColor(205,175,149));
    for(int j=1;j<corr_table[0].size();j++)
    {
        for(int i=0;i<per_lim;i++)
        {
            if(i>=corr_table.size()-1)
            {
                x1 = x2;
                y1 = y2;

                x2 = space + (i+1)*kx;
                y2 = y2;
            }
            else
            {
                x1 = space + (corr_table[i][0]-1)*kx;
                y1 = sizeh + shift_y - space - (float)(corr_table[i][j]*ky);

                x2 = space + (corr_table[i+1][0]-1)*kx;
                y2 = sizeh + shift_y - space - (float)(corr_table[i+1][j]*ky);
            }
            sc->addLine(x1,y1,x2,y2,QPen(QBrush(QColor(205,175,149),Qt::SolidPattern),4,Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin));
            sc->addEllipse(x1-4,y1-4,8,8,QPen(QColor(139,119,101),2),QBrush(QColor(205,175,149)));


            sc->addLine(x2,sizeh-space-5,x2,sizeh-space+5,QPen(QBrush(QColor(139,134,130),Qt::SolidPattern),4,Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin));

            QGraphicsTextItem *t;
            t=new QGraphicsTextItem(QString().sprintf("%d",i+2));
            t->setDefaultTextColor(QColor(139,134,130));
            t->setPos(x2-7,sizeh-space+3);
            sc->addItem(t);


            if(i==0)
            {
                sc->addEllipse(x1-5,sizeh-space-5,10,10,QPen(QColor(139,119,101),2),QBrush(QColor(139,134,130)));
                t=new QGraphicsTextItem(QString().sprintf("%d",i+1));
                t->setDefaultTextColor(QColor(139,134,130));
                t->setPos(x1-7,sizeh-space+3);
                sc->addItem(t);
            }

        }

    }

    sc->addEllipse(x2-4,y2-4,8,8,QPen(QColor(139,119,101),2),QBrush(QColor(205,175,149)));


    //подписи графиков

    for(int i=1;i<corr_table[0].size();i++)
    {
        x1=(corr_table[1][0]-1)*kx;
        y1 = sizeh + shift_y - space - (float)(corr_table[1][i]*ky);
        x2 = space + (corr_table[2][0]-1)*kx;
        y2 = sizeh + shift_y - space - (float)(corr_table[2][i]*ky);
        float xs,ys;
        xs=(x1+x2)/2;
        ys=(y1+y2)/2;

        QGraphicsTextItem *t;

        switch(i)
        {
        case 1:
            t=new QGraphicsTextItem("Ic(x)min");
            t->setPos(xs-15,ys-55);
            t->setRotation(23);
            break;
        case 2:
            t=new QGraphicsTextItem("Ic(x)max");
            t->setPos(xs+11,ys-70);
            t->setRotation(52);
            break;
        case 3:
            t=new QGraphicsTextItem("Ic(x)sr.");
            t->setPos(xs+11,ys-50);
            t->setRotation(34);
            break;
        }


        t->setDefaultTextColor(QColor(139,134,130));
        t->setFont(QFont(t->font().family(),15,11,true));

        sc->addItem(t);

    }

    QGraphicsTextItem *t;
    t=new QGraphicsTextItem("Ic(x)=" + QString().sprintf("%0.4f",icx));
    t->setDefaultTextColor(QColor(139,134,130));
    t->setFont(QFont(t->font().family(),15,11,true));
    t->setPos(sizew-5*space,sizeh + shift_y - space - (icx*ky)-40);
    sc->addItem(t);

    t=new QGraphicsTextItem("μ");
    t->setDefaultTextColor(QColor(139,134,130));
    t->setFont(QFont(t->font().family(),15,11,true));
    t->setPos(sizew-space-2,sizeh - space-2);
    sc->addItem(t);
    pen.setColor(QColor(139,119,101));
    sc->addLine(sizew-space,sizeh - space,sizew-space-10,sizeh - space-8,pen);
    sc->addLine(sizew-space,sizeh - space,sizew-space-10,sizeh - space+8,pen);
    t=new QGraphicsTextItem("Ic(x)");
    t->setDefaultTextColor(QColor(139,134,130));
    t->setFont(QFont(t->font().family(),15,11,true));
    t->setPos(space+2,space+2);
    sc->addItem(t);
    pen.setColor(QColor(139,119,101));
    sc->addLine(space,space,space-8,space+10,pen);
    sc->addLine(space,space,space+8,space+10,pen);


    for(int i=1;i<corr_table[0].size();i++)
    {
        t=new QGraphicsTextItem(QString().sprintf("%0.3f",corr_table[0][i]));
        t->setDefaultTextColor(QColor(139,134,130));
        t->setFont(QFont(t->font().family(),10,11,true));
        t->setPos(space + (corr_table[0][0]-1)*kx-52,sizeh + shift_y - space - (float)(corr_table[0][i]*ky)+25);
        t->setRotation(-45);
        sc->addItem(t);
    }




    ui->graphicsView->setScene(sc);
    //ui->graphicsView->fitInView(0,0,sizew,sizeh);
    // ui->graphicsView->scale(10,-1);
}
コード例 #3
-1
ファイル: weekscene.cpp プロジェクト: dreamsxin/ktorrent
    void WeekScene::addCalendar()
    {
        const KCalendarSystem* cal = KGlobal::locale()->calendar();

        QGraphicsTextItem* tmp = addText("Dinges");
        QFontMetricsF fm(tmp->font());
        removeItem(tmp);
        delete tmp;


        // first add 7 rectangles for each day of the week
        xoff = fm.width("00:00") + 10;
        yoff = 2 * fm.height() + 10;
        day_width = LongestDayWidth(fm) * 1.5;
        hour_height = fm.height() * 1.5;

        status = addText(i18n("Current schedule:"));
        status->setPos(QPointF(0, 0));
        status->setZValue(2);

        QPen pen(SchedulerPluginSettings::scheduleLineColor());
        QBrush brush(SchedulerPluginSettings::scheduleBackgroundColor());

        for (int i = 0; i < 7; i++)
        {
            QGraphicsRectItem* item = addRect(xoff + day_width * i, yoff, day_width, 24 * hour_height, pen, brush);
            item->setZValue(1);

            QString day = cal->weekDayName(i + 1);

            // make sure day is centered in the middle of the column
            qreal dlen = fm.width(day);
            qreal mid = xoff + day_width * (i + 0.5);
            qreal start = mid - dlen * 0.5;

            QGraphicsTextItem* t = addText(day);
            t->setPos(QPointF(start, fm.height() + 5));
            t->setZValue(2);

            rects.append(item);
        }

        // draw hour lines
        for (int i = 0; i <= 24; i++)
        {
            QGraphicsLineItem* item = addLine(0, yoff + i * hour_height, xoff + 7 * day_width, yoff + i * hour_height, pen);
            item->setZValue(2);

            if (i < 24)
            {
                QGraphicsTextItem* t = addText(QString("%1:00").arg(i));
                t->setPos(QPointF(0, yoff + i * hour_height));
                t->setZValue(2);
            }
            lines.append(item);
        }

        ;
        gline[0] = new GuidanceLine(xoff, yoff, xoff + 7 * day_width + 10);
        gline[0]->setVisible(false);
        gline[1] = new GuidanceLine(xoff, yoff, xoff + 7 * day_width + 10);
        gline[1]->setVisible(false);
        addItem(gline[0]);
        addItem(gline[1]);

        QRectF r = sceneRect();
        r.setHeight(r.height() + 10);
        setSceneRect(r);
    }