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)); }
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); }
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); }