コード例 #1
1
void
DigestTreeScene::updateNode(QString sessionPrefix, QString nick, uint64_t seqNo)
{
  Roster_iterator it = m_roster.find(sessionPrefix);
  if (it == m_roster.end()) {
    DisplayUserPtr p(new DisplayUser());
    p->setPrefix(sessionPrefix);
    p->setSeq(seqNo);
    m_roster.insert(p->getPrefix(), p);
    plot(m_rootDigest);
  }
  else {
    it.value()->setSeq(seqNo);
    DisplayUserPtr p = it.value();
    QGraphicsTextItem *item = p->getSeqTextItem();
    QGraphicsRectItem *rectItem = p->getInnerRectItem();
    std::string s = boost::lexical_cast<std::string>(p->getSeqNo());
    item->setPlainText(s.c_str());
    QRectF textBR = item->boundingRect();
    QRectF rectBR = rectItem->boundingRect();
    item->setPos(rectBR.x() + (rectBR.width() - textBR.width())/2,
                 rectBR.y() + (rectBR.height() - textBR.height())/2);
  }
  m_displayRootDigest->setPlainText(m_rootDigest);
  updateNick(sessionPrefix, nick);
}
コード例 #2
0
void BattleAbilitySelection::nextItem() {
	if (_state == BattleAbilitySelection::ACTIONSELECTION) {
		if (_currentItem == _activeItems.at(_activeItems.size()-1))
			setCurrentItem(_activeItems.at(0));
		else
			setCurrentItem(_activeItems.at(_activeItems.indexOf(_currentItem)+1));
	} else if (_state == BattleAbilitySelection::ABILITYSELECTION) {
		if (_currentItem == _activeItems.last()) {

			// If the last ability was selected, scroll back to the first one
			if (_abilityIndex == (_abilities.size()-1)) {
				createAbilities();
			} else { /* Else scroll to the next ability */
				for (int i = 0; i < _activeItems.size()-1; i++) {
					QGraphicsTextItem *item = _activeItems.at(i);
					item->setPlainText(_activeItems.at(i+1)->toPlainText());
				}

				_abilityIndex++;
				Ability *ability = _abilities.at(_abilityIndex);

				QGraphicsTextItem *item = _activeItems.at(_activeItems.size()-1);
				item->setPlainText(ability->getName() + "\t" + QString::number(ability->getCost()) + " " + _currentBattler->getEnergy().first->getName());
			}
		} else {
			_abilityIndex++;
			setCurrentItem(_activeItems.at(_activeItems.indexOf(_currentItem)+1));
		}
	}
}
コード例 #3
0
ファイル: WeiboDialog.cpp プロジェクト: BIbiLion/PhotoKit
	WeiboDialogPrivate() {
		api = new WeiboApi;
		qreal x = 6;
		QGraphicsTextItem *title = new QGraphicsTextItem(titleBar);
		title->setPos(x, 12);
		title->setDefaultTextColor(Qt::white);
		QFont f;
		f.setPixelSize(23);
		f.setBold(true);
		title->setFont(f);
		title->setPlainText(QObject::tr("New weibo (Sina)"));
		qreal w = qApp->desktop()->width()/2 - 44;
		statusEdit = new TextEdit(central);
		statusEdit->setFont(f);
		statusEdit->setDefaultTextColor(Qt::blue);
		statusEdit->document()->setDocumentMargin(22);

		qreal y = 22;
		statusEdit->setPos(x, y);
		statusEdit->document()->setTextWidth(qApp->desktop()->width()/2 - 8);
		//statusEdit->setPlainText("Write something...");
        qreal h = qApp->desktop()->height()*0.618;
		statusEdit->resize(w, h);
		y += statusEdit->size().height() + 12;
		qreal hh = qMin<qreal>(qApp->desktop()->height()*0.314/2, 40); //TODO: calculate the line edit height
		f.setBold(true);
		QGraphicsTextItem *user = new QGraphicsTextItem(central);
        f.setPixelSize(20);
		user->setFont(f);
        user->document()->setDocumentMargin(4);
		user->setDefaultTextColor(QColor(33, 33, 33));
		user->setPlainText(QObject::tr("User"));
		user->setPos(x, y);
		userEdit = new TextEdit(central);
		userEdit->setPos(x + 120, y);
        userEdit->resize(w - 120, hh);
		userEdit->setDefaultTextColor(Qt::black);
        userEdit->document()->setDocumentMargin(11);
		userEdit->document()->setTextWidth(qApp->desktop()->width()/2 - 8);
        y += hh + 2;
		QGraphicsTextItem *passwd = new QGraphicsTextItem(central);
        passwd->setFont(f);
        passwd->document()->setDocumentMargin(4);
		passwd->setDefaultTextColor(QColor(33, 33, 33));
		passwd->setPlainText(QObject::tr("Password"));
		passwd->setPos(x, y);
		passwdEdit = new TextEdit(central);
		passwdEdit->setPos(x + 120, y);
        passwdEdit->resize(w - 120, hh);
		passwdEdit->setDefaultTextColor(Qt::black);
        passwdEdit->document()->setDocumentMargin(11);
		statusEdit->setTextInteractionFlags(Qt::TextEditorInteraction);
		userEdit->setTextInteractionFlags(Qt::TextEditorInteraction);
		passwdEdit->setTextInteractionFlags(Qt::TextEditorInteraction);

        f.setPixelSize(24);
        userEdit->setFont(f);
		passwdEdit->setFont(f);
		passwdEdit->setEchoMode(TextEdit::Password);
	}
コード例 #4
0
ファイル: MainWindow.cpp プロジェクト: rNexeR/QGV-Test
void MainWindow::on_pushButton_clicked()
{

    QGraphicsEllipseItem *ellipse2;
    QGraphicsTextItem *texto;

    QBrush redBrush(Qt::red);
    //QBrush blueBrush(Qt::blue);
    QPen blackPen(Qt::black);
    blackPen.setWidth(1);

    ellipse1 = scene->addEllipse(0, 10, 100, 100, blackPen, redBrush);
    ellipse2 = scene->addEllipse(500, 10, 100, 100, blackPen, redBrush);
    ellipse1->setAcceptDrops(true);
    ellipse2->setAcceptDrops(true);
    ellipse1->setFlag(QGraphicsItem::ItemIsMovable, true);

    texto = new QGraphicsTextItem();
    texto->setPos(0,50);
    texto->setPlainText("Nodo X");
    Nodo1->addToGroup(ellipse1);
    Nodo1->addToGroup(texto);
    Nodo1->setAcceptDrops(true);
    Nodo1->setFlag(QGraphicsItem::ItemIsMovable, true);

    scene->addItem(Nodo1);
    ui->painter->setAcceptDrops(true);
    ui->painter->setScene(scene);
    ui->painter->scale(currentScale,currentScale);
}
コード例 #5
0
Plansza::Plansza(int liczbaGraczy, QObject *parent)
    : QGraphicsScene(parent), _liczbaGraczy(liczbaGraczy)
{
    _stol = vector<Karta>(liczbaGraczy);
	_deklaracje = vector<int>(liczbaGraczy);
	_wziete = vector<int>(liczbaGraczy);
	_punkty = vector<int>(liczbaGraczy, 0);

    karty = QVector<QVector<KartaSprite*> >(liczbaGraczy);

    _nrLewy = 1;

    // deklaracje Items

    QFont font;
    font.setBold(true);
    font.setPixelSize(25);
    QGraphicsTextItem *item;
    for (int i = 0; i < liczbaGraczy; i++) {
        item = new QGraphicsTextItem;
        item->setPlainText(tr("?"));
        item->setFont(font);
        item->setPos(0, i*50);
        addItem(item);
        deklaracjeItems.push_back(item);
    }

    setBackgroundBrush(Qt::green);
    //setSceneRect(0, 0, 1000, 1000);
}
コード例 #6
0
ファイル: graphicsView.cpp プロジェクト: rforge/qtinterfaces
SEXP
scene_addText(SEXP scene, SEXP x, SEXP y, SEXP labels, SEXP html)
{
    QGraphicsScene* s = unwrapQObject(scene, QGraphicsScene);
    int nlab = length(labels);
    int i, n = length(x);
    for (i = 0; i < n; i++) {
	QGraphicsTextItem *ti = s->addText(QString());
	ti->setFont(QFont("Arial"));
	if (LOGICAL(html)[0]) {
	    ti->setHtml(QString::fromLocal8Bit(CHAR(asChar(STRING_ELT(labels, i % nlab)))));
	    ti->setOpenExternalLinks(true);
	    ti->setToolTip("I am HTML!");
	}
	else {
	    ti->setPlainText(QString::fromLocal8Bit(CHAR(asChar(STRING_ELT(labels, i % nlab)))));
	}
	ti->setPos(REAL(x)[i], REAL(y)[i]);
	ti->setFlags(QGraphicsItem::ItemIsMovable | 
		     QGraphicsItem::ItemIsSelectable | 
		     QGraphicsItem::ItemIsFocusable | 
		     QGraphicsItem::ItemIgnoresTransformations);
    }
    return R_NilValue;
}
コード例 #7
0
void KeypointItem::showDescription()
{
	if(!placeHolder_ || !placeHolder_->isVisible())
	{
		if(!placeHolder_)
		{
			QString info = QString( "Keypoint = %1\n"
									"Word = %2\n"
									"Response = %3\n"
									"Angle = %4\n"
									"X = %5\n"
									"Y = %6\n"
									"Size = %7").arg(id_).arg(wordID_).arg(kpt_.response).arg(kpt_.angle).arg(kpt_.pt.x).arg(kpt_.pt.y).arg(kpt_.size);

			placeHolder_ = new QGraphicsRectItem();
			placeHolder_->setVisible(false);
			this->scene()->addItem(placeHolder_);
			placeHolder_->setBrush(QBrush(QColor ( 0, 0, 0, 170 ))); // Black transparent background
			QGraphicsTextItem * text = new QGraphicsTextItem(placeHolder_);
			text->setDefaultTextColor(this->pen().color().rgb());
			text->setPlainText(info);
			placeHolder_->setRect(text->boundingRect());
		}


		QPen pen = this->pen();
		this->setPen(QPen(pen.color(), pen.width()+2));
		placeHolder_->setZValue(this->zValue()+1);
		placeHolder_->setPos(this->mapToScene(0,0));
		placeHolder_->setVisible(true);
	}
}
コード例 #8
0
ファイル: game.cpp プロジェクト: Ipshin/Projects
void Game::gameOver()
{
    QGraphicsTextItem *gameOverLabel = new QGraphicsTextItem;
    if (isWin)
    {
        gameOverLabel->setPlainText(QString("You Win"));
    }
    else
    {
        gameOverLabel->setPlainText(QString("Game Over"));
    }
    gameOverLabel->setDefaultTextColor(Qt::black);
    gameOverLabel->setFont(QFont("times", 24));
    gameOverLabel->setPos(-100, -250);

    scene->addItem(gameOverLabel);
    timer->stop();
}
コード例 #9
0
ファイル: KeypointItem.cpp プロジェクト: FNicolai/rtabmap
void KeypointItem::showDescription()
{
	if(!_placeHolder)
	{
		_placeHolder = new QGraphicsRectItem (this);
		_placeHolder->setVisible(false);
		_placeHolder->setBrush(QBrush(QColor ( 0, 0, 0, 170 ))); // Black transparent background
		QGraphicsTextItem * text = new QGraphicsTextItem(_placeHolder);
		text->setDefaultTextColor(this->pen().color().rgb());
		if(_depth <= 0)
		{
			text->setPlainText(QString( "Id = %1\n"
					"Dir = %3\n"
					"Hessian = %4\n"
					"X = %5\n"
					"Y = %6\n"
					"Size = %7").arg(_id).arg(_kpt.angle).arg(_kpt.response).arg(_kpt.pt.x).arg(_kpt.pt.y).arg(_kpt.size));
		}
		else
		{
			text->setPlainText(QString( "Id = %1\n"
					"Dir = %3\n"
					"Hessian = %4\n"
					"X = %5\n"
					"Y = %6\n"
					"Size = %7\n"
					"Depth = %8 m").arg(_id).arg(_kpt.angle).arg(_kpt.response).arg(_kpt.pt.x).arg(_kpt.pt.y).arg(_kpt.size).arg(_depth));
		}
		_placeHolder->setRect(text->boundingRect());
	}


	if(_placeHolder->parentItem())
	{
		_placeHolder->setParentItem(0); // Make it a to level item
	}
	QPen pen = this->pen();
	this->setPen(QPen(pen.color(), _width+2));
	_placeHolder->setZValue(this->zValue()+1);
	_placeHolder->setPos(this->mapFromScene(0,0));
	_placeHolder->setVisible(true);
}
コード例 #10
0
ファイル: graphics.cpp プロジェクト: Vad118/linux_dipl
void _graphics::paintServer()
{
    server_x=PalletScene->width()/2-SERVER_RECT_WIDTH/2;
    server_y=SERVER_RECT_HEIGHT;
    QBrush br(Qt::white);
    QPen pen(Qt::black);
    PalletScene->addRect(server_x,server_y,SERVER_RECT_WIDTH,SERVER_RECT_HEIGHT,pen,br);
    QGraphicsTextItem* io = new QGraphicsTextItem;
    io->setPos(server_x,server_y);
    io->setPlainText("SERVER");
    PalletScene->addItem(io);
}
コード例 #11
0
ファイル: graphics.cpp プロジェクト: Vad118/linux_dipl
void _graphics::paintArbiter(int x, int y, int client_x, int client_y, char* text)
{
    QBrush br(Qt::white);
    QPen pen(Qt::black);
    PalletScene->addLine(client_x+CLIENT_RECT_WIDTH/2,client_y+CLIENT_RECT_HEIGHT,x+ACTOR_CIRCLE_RADIUS/2,y,pen);

    PalletScene->addEllipse(x,y,ACTOR_CIRCLE_RADIUS,ACTOR_CIRCLE_RADIUS,pen,br);
    QGraphicsTextItem * io = new QGraphicsTextItem;
    io->setPos(x,y);
    io->setPlainText(text);
    PalletScene->addItem(io);
}
コード例 #12
0
ファイル: graphics.cpp プロジェクト: Vad118/linux_dipl
void _graphics::paintClient(int x, int y, char* str)
{
    QBrush br(Qt::white);
    QPen pen(Qt::black);
    PalletScene->addLine(server_x+SERVER_RECT_WIDTH/2,server_y+SERVER_RECT_HEIGHT,x+CLIENT_RECT_WIDTH/2,y,pen);
    PalletScene->addRect(x,y,CLIENT_RECT_WIDTH,CLIENT_RECT_HEIGHT,pen, br);

    QGraphicsTextItem* io = new QGraphicsTextItem;
    io->setPos(x,y);
    io->setPlainText(str);
    PalletScene->addItem(io);
}
コード例 #13
0
ファイル: BbScene.cpp プロジェクト: shihuaxiang/blackboard
void BbScene::testAddText()
{
	QGraphicsTextItem* item = new QGraphicsTextItem;

	QFont font = QFont("Microsoft YaHei");
	font.setPointSize(20);
	item->setFont(font);
	item->setPlainText("I am a clever mouse");
	item->setPos(0, 0);

	addItem(item);
}
コード例 #14
0
ファイル: city.cpp プロジェクト: thukydides/StreetPlanner
void City::draw(QGraphicsScene &scene)
	{
	qDebug().noquote().nospace() << "Drawing city: " + name + " at ("
	                             << x << ", " << y << ")";
	// circle
	scene.addEllipse(x - 4, y - 4, 8, 8, QPen(Qt::black),
	                 QBrush(Qt::red, Qt::SolidPattern));

	QGraphicsTextItem *text = new QGraphicsTextItem;
	text->setPos(x - 4, y - 8);
	text->setPlainText(name);
	scene.addItem(text);
	}
コード例 #15
0
void BattleAbilitySelection::previousItem() {
	if (_state == BattleAbilitySelection::ACTIONSELECTION) {
		if (_currentItem == _activeItems.at(0))
			setCurrentItem(_activeItems.at(_activeItems.size()-1));
		else
			setCurrentItem(_activeItems.at(_activeItems.indexOf(_currentItem)-1));
	} else if (_state == BattleAbilitySelection::ABILITYSELECTION) {
		if (_currentItem == _activeItems.at(0)) {

			// If the first ability was selected, scroll to the last one
			if (_abilityIndex == 0) {
				for (int i = (_activeItems.size()-1); i >= 0 ; i--) {
					QGraphicsTextItem *item = _activeItems.at(i);
					Ability *ability = _abilities.at(_abilities.size() - _activeItems.size() + i);
					item->setPlainText(ability->getName() + "\t" + QString::number(ability->getCost()) + " " + _currentBattler->getEnergy().first->getName());
				}

				_abilityIndex = _abilities.size()-1;
				setCurrentItem(_activeItems.at(_activeItems.size()-1));
			} else { // Else scroll to the previous ability
				for (int i = (_activeItems.size()-1); i > 0; i--) {
					QGraphicsTextItem *item = _activeItems.at(i);
					item->setPlainText(_activeItems.at(i-1)->toPlainText());
				}

				_abilityIndex--;
				Ability *ability = _abilities.at(_abilityIndex);

				QGraphicsTextItem *item = _activeItems.at(0);
				item->setPlainText(ability->getName() + "\t" + QString::number(ability->getCost()) + " " + _currentBattler->getEnergy().first->getName());
			}
		} else {
			_abilityIndex--;
			setCurrentItem(_activeItems.at(_activeItems.indexOf(_currentItem)-1));
		}
	}
}
コード例 #16
0
ファイル: graphics.cpp プロジェクト: Vad118/linux_dipl
void _graphics::paintTraceObject(int x, int y, int arbiter_x, int arbiter_y, char *text, int type)
{
    QBrush br(Qt::white);
    QPen pen;
    //PalletScene->addLine(server_x+SERVER_RECT_WIDTH/2,server_y+SERVER_RECT_HEIGHT,x+CLIENT_RECT_WIDTH/2,y,pen);

    switch(type)
    {
        case 0:
            pen.setColor(Qt::red);
            break;
        case 1:
            pen.setColor(Qt::green);
            break;
        case 2:
            pen.setColor(Qt::blue);
            break;
    }
    if(x!=0 && y!=0)
    {
        PalletScene->addRect(x,y,CLIENT_RECT_WIDTH*2,CLIENT_RECT_HEIGHT,pen, br);
        QGraphicsTextItem* io = new QGraphicsTextItem;
        io->setPos(x,y);
        io->setPlainText(text);
        PalletScene->addItem(io);
    }
    else   // Нет арбитра - когда инициализация
    {
        int message_x=x;
        int message_y=y;
        int init_x=0;
        int init_y=20;

        PalletScene->addRect(message_x,message_y,CLIENT_RECT_WIDTH*2,CLIENT_RECT_HEIGHT,pen, br);
        QGraphicsTextItem* io2 = new QGraphicsTextItem;
        io2->setPos(message_x,message_y);
        io2->setPlainText(text);
        PalletScene->addItem(io2);

        pen.setColor(Qt::black);
        PalletScene->addRect(init_x,init_y,CLIENT_RECT_WIDTH*2,CLIENT_RECT_HEIGHT,pen, br);
        QGraphicsTextItem* io3 = new QGraphicsTextItem;
        io3->setPos(init_x,init_y);
        io3->setPlainText("createAndInitActors");
        PalletScene->addItem(io3);

        //PalletScene->addLine(init_x+CLIENT_RECT_WIDTH/2,init_y+CLIENT_RECT_HEIGHT,message_x+CLIENT_RECT_WIDTH/2,message_y,pen);
    }
}
コード例 #17
0
ファイル: mainwindow.cpp プロジェクト: gregorius2514/Max-Flow
void MainWindow::paintEvent(QPaintEvent *e)
{
    wierzcholek tmp;
    QPen blackPen(Qt::black);
    blackPen.setWidth(1);

    int x_src, x_dst, y_src, y_dst;
    x_src = x_dst = y_src = y_dst = 0;

    for(std::list<wierzcholek>::iterator itr = wierzcholki.begin(); itr != wierzcholki.end(); itr++) {

        scene->addEllipse(itr->x, itr->y, ECLIPSE_WIDTH, ECLIPSE_WIDTH, blackPen);

        QGraphicsTextItem *io = new QGraphicsTextItem;
        io->setPos(itr->x + ECLIPSE_WIDTH/4 - itr->nazwa.length(), itr->y + ECLIPSE_WIDTH/3);
        io->setPlainText(itr->nazwa);
        scene->addItem(io);

        for(std::list<krawedz>::iterator itr2 = itr->krawedzie.begin(); itr2 != itr->krawedzie.end(); itr2++){
            get_node(itr2->cel, tmp);
            x_src = itr->x+ECLIPSE_WIDTH;
            y_src = itr->y+ECLIPSE_WIDTH/2;
            x_dst = tmp.x;
            y_dst = tmp.y+ECLIPSE_WIDTH/2;

            if(itr2->cel != "ujscie") {
                QGraphicsTextItem *number = new QGraphicsTextItem;
                number->setPos((x_src + x_dst)/2, (y_src + y_dst)/2);
                number->setPlainText(QString::number(itr2->pojemnosc));
                scene->addItem(number);
            }

            scene->addLine(x_src, y_src, x_dst, y_dst,  blackPen);
        }
    }
}
コード例 #18
0
void
DigestTreeScene::reDrawNode(DisplayUserPtr p, QColor rimColor)
{
    QGraphicsRectItem *rimItem = p->getRimRectItem();
    rimItem->setBrush(QBrush(rimColor));
    QGraphicsRectItem *innerItem = p->getInnerRectItem();
    innerItem->setBrush(QBrush(Qt::lightGray));
    QGraphicsTextItem *seqTextItem = p->getSeqTextItem();
    std::string s = boost::lexical_cast<std::string>(p->getSeqNo());
    seqTextItem->setPlainText(s.c_str());
    QRectF textBR = seqTextItem->boundingRect();
    QRectF innerBR = innerItem->boundingRect();
    seqTextItem->setPos(innerBR.x() + (innerBR.width() - textBR.width())/2,
                        innerBR.y() + (innerBR.height() - textBR.height())/2);
}
コード例 #19
0
void mogs_qt_video_scene::DrawPoint(	CvPoint in,
					QString name)
{
	QPen outlinePen(Qt::red);
	outlinePen.setWidth(2);
	addEllipse(in.x, in.y, 5, 5,outlinePen);
	
	if (name != "")
	{
		QGraphicsTextItem * io = new QGraphicsTextItem;
		io->setDefaultTextColor(Qt::red);
		io->setPos(in.x -20,in.y);
		io->setPlainText(name);
		addItem(io);
	}
}
コード例 #20
0
QtTextPositionWidget::QtTextPositionWidget(const std::vector<std::string>& items)
{
  QGraphicsScene * const scene = new QGraphicsScene(this);
  this->setScene(scene);

  std::for_each(items.begin(),items.end(),
    [this,scene](const std::string& s)
    {
      QGraphicsTextItem * item = new QGraphicsTextItem;
      item->setPlainText(s.c_str());
      item->setFlags(QGraphicsItem::ItemIsMovable);
      item->setPos(this->width() / 2.0, this->height() / 2.0);
      scene->addItem(item);
    }
  );
}
コード例 #21
0
ファイル: MainWindow.cpp プロジェクト: rNexeR/Orga-Proyecto2
QGraphicsItemGroup* MainWindow::createVisualNodo(string* names, int cant){
    QGraphicsItemGroup* grupo = new QGraphicsItemGroup();
    int posx = 0;
    int dim = 50;

    for(int x = 0; x < cant; x++){
        QGraphicsRectItem* cuadro = new QGraphicsRectItem(posx,0,50,50);
        cuadro->setBrush(QBrush(Qt::gray));
        QGraphicsTextItem* texto = new QGraphicsTextItem();
        texto->setPos(posx, dim/3);
        texto->setPlainText(QString::fromStdString(names[x]));
        grupo->addToGroup(cuadro);
        grupo->addToGroup(texto);
        posx+=dim;
    }
    return grupo;
}
コード例 #22
0
void
DigestTreeScene::updateNick(QString sessionPrefix, QString nick)
{
  Roster_iterator it = m_roster.find(sessionPrefix);
  if (it != m_roster.end()) {
    DisplayUserPtr p = it.value();
    if (nick != p->getNick()) {
      p->setNick(nick);
      QGraphicsTextItem *nickItem = p->getNickTextItem();
      QGraphicsRectItem *nickRectItem = p->getNickRectItem();
      nickItem->setPlainText(p->getNick());
      QRectF rectBR = nickRectItem->boundingRect();
      QRectF nickBR = nickItem->boundingRect();
      nickItem->setPos(rectBR.x() + (rectBR.width() - nickBR.width())/2, rectBR.y() + 5);
    }
  }
}
コード例 #23
0
void BattleCharacterStatus::valueChanged(QString name) {
	BattleCharacterItem *character = 0;
	QGraphicsTextItem *infoItem = 0;
	for (int i = 0; i < _characters.size(); i++) {
		BattleCharacterItem *it = _characters.at(i);
		if (!!it && (it->getName() == name)) {
			character = it;
			infoItem = _info.at(i);
			break;
		}
	}

	if (!!character) {
		QString infoString;
		infoString += character->getCharacter()->getName() + QString(":\n");
		infoString += QString("Health: ") + QString::number(character->getHealth().second) + QString(" / ") + QString::number(character->getMaxHealth().second) + QString("\t");
		infoString += QString("Energy: ") + QString::number(character->getEnergy().second) + QString(" / ") + QString::number(character->getMaxEnergy().second);


		double percentage = (double)character->getHealth().second / (double)character->getMaxHealth().second * 100;

		if (percentage > 60)
			infoItem->setDefaultTextColor(Qt::green);
		else if ((percentage <= 60) && (percentage > 25))
			infoItem->setDefaultTextColor(Qt::yellow);
		else if ((percentage <= 25) && (percentage > 0))
			infoItem->setDefaultTextColor(Qt::red);
		else
			infoItem->setDefaultTextColor(Qt::gray);

		infoItem->setPlainText(infoString);
		QFont font("Times", 12, QFont::Bold);
		infoItem->setFont(font);

		QTextBlockFormat format;
		format.setAlignment(Qt::AlignLeft);
		QTextCursor cursor = infoItem->textCursor();
		cursor.select(QTextCursor::Document);
		cursor.mergeBlockFormat(format);
		cursor.clearSelection();
		infoItem->setTextCursor(cursor);
	}
}
コード例 #24
0
void BattleCharacterStatus::setCharacters(const QVector<BattleCharacterItem*> &characters) {
	for (int i = 0; i < _info.size(); i++) {
		delete _info.at(i);
	}
	_info.clear();

	_characters = characters;
	int y = 10;
	for (int i = 0; i < _characters.size(); i++) {
		BattleCharacterItem *character = _characters.at(i);
		connect (character, SIGNAL(valueChanged(QString)), this, SLOT(valueChanged(QString)));

		QString infoString;
		infoString += character->getCharacter()->getName() + QString(":\n");
		infoString += QString("Health: ") + QString::number(character->getHealth().second) + QString(" / ") + QString::number(character->getMaxHealth().second) + QString("\t");
		infoString += QString("Energy: ") + QString::number(character->getEnergy().second) + QString(" / ") + QString::number(character->getMaxEnergy().second);

		QGraphicsTextItem *infoItem = new QGraphicsTextItem(this);
		_info.append(infoItem);
		infoItem->setTextWidth(boundingRect().width());
		infoItem->setDefaultTextColor(Qt::green);

		infoItem->setPlainText(infoString);
		QFont font("Times", 12, QFont::Bold);
		infoItem->setFont(font);

		QTextBlockFormat format;
		format.setAlignment(Qt::AlignLeft);
		QTextCursor cursor = infoItem->textCursor();
		cursor.select(QTextCursor::Document);
		cursor.mergeBlockFormat(format);
		cursor.clearSelection();
		infoItem->setTextCursor(cursor);

		infoItem->setPos(10, y);
		y += 50;
	}
}
コード例 #25
0
void KeypointItem::showDescription()
{
	if(!_placeHolder)
	{
		_placeHolder = new QGraphicsRectItem (this);
		_placeHolder->setVisible(false);
		_placeHolder->setBrush(QBrush(QColor ( 0, 0, 0, 170 ))); // Black transparent background
		QGraphicsTextItem * text = new QGraphicsTextItem(_placeHolder);
		text->setDefaultTextColor(this->pen().color().rgb());
		text->setPlainText(_info);
		_placeHolder->setRect(text->boundingRect());
	}


	if(_placeHolder->parentItem())
	{
		_placeHolder->setParentItem(0); // Make it a to level item
	}
	QPen pen = this->pen();
	this->setPen(QPen(pen.color(), _width+2));
	_placeHolder->setZValue(this->zValue()+1);
	_placeHolder->setPos(this->mapFromScene(0,0));
	_placeHolder->setVisible(true);
}
コード例 #26
0
void Visualiseur::miseAJourGraphique()
{
    scene->clear();



    QPolygonF Polygone ;
    if(afficherTriangulation){
        for (int i=0 ; i < triangles.size() ; i++ ){
            triangles[i].transformerEnPolygone(Polygone , points);
            scene->addPolygon(Polygone , QPen(Qt::blue , 1 )) ;
        }
    }

    if(afficherCentres){
        for (int i=0 ; i < triangles.size() ; i++ ){
            QGraphicsTextItem* texte = new QGraphicsTextItem();
            texte->scale(1 , -1 );
            texte->setPlainText(QString::number(i));
            texte->setPos(triangles[i].centroide.x()-1 , triangles[i].centroide.y() - 1);
            scene->addItem(texte);
        }
    }

    if(afficherSommets){
        for (int i=0 ; i < points.size() ; i++ ){
            QGraphicsTextItem* texte = new QGraphicsTextItem();
            texte->scale(1 , -1 );
            texte->setPlainText(QString::number(i));
            texte->setDefaultTextColor(Qt::red);
            texte->setPos(points[i].x()-1 , points[i].y() - 1);
            scene->addItem(texte);
        }
    }

    if (afficherCercle){
        int id_triangle = fonctionsCommunes::Walk(curseur , points , triangles ) ;
        scene->addEllipse(triangles[id_triangle].centre[0] -triangles[id_triangle].R ,
                          triangles[id_triangle].centre[1] -triangles[id_triangle].R ,
                          2*triangles[id_triangle].R , 2*triangles[id_triangle].R , QPen(Qt::gray)) ;

    }

    if (afficherWalk && (!trajectoireWalk.isEmpty()) && (triangleUniversel.inTriangle(curseur , points ))){
        for (int i=0 ; i< trajectoireWalk.size() ; i ++ ){
            QPolygonF P ;
            triangles[trajectoireWalk[i]].transformerEnPolygone(P , points );

            scene->addPolygon(P , QPen(Qt::black) , QBrush(QColor(0, 0,200, 30))) ;

        }
    }

    if (afficherVoronoi && (triangles.size()> 1 )){
        Voronoi.clear();
        fonctionsCommunes::Voronoi( Voronoi , triangles ) ;
        for (int i = 0 ; i < Voronoi.size() ; i ++ ){
            scene->addLine(Voronoi[i] , QPen(Qt::red)) ;
        }
    }

    if (afficherPlusProcheVoisin){
        fonctionsCommunes::PlusProcheVoisin( curseur , triangles , points , procheVoisin  ) ;
        scene->addEllipse(procheVoisin.x() - 4 , procheVoisin.y() - 4 , 8 , 8 , QPen(Qt::red , 6)) ;
    }



}
コード例 #27
0
void Macro::draw(QGraphicsScene* scene, QColor background, QColor font) {
    //size 241, 281
    //QBrush Ybrush(Qt::blue);
    //scene->setBackgroundBrush(Ybrush);

    QFont titleFont("Times", 10, QFont::Bold);
    QGraphicsTextItem * titleItem = new QGraphicsTextItem;
    titleItem->setPos(70,10);
    titleItem->setDefaultTextColor(font);
    titleItem->setFont(titleFont);
    titleItem->setPlainText("Macro Recorder");
    scene->addItem(titleItem);

    QFont actFont("Times", 9, QFont::Bold);
    QGraphicsTextItem * actItem = new QGraphicsTextItem;
    actItem->setPos(30,40);
    actItem->setDefaultTextColor(font);
    actItem->setFont(actFont);
    if (activationKeyRec == false) {
        QChar key = static_cast<char>(activationKey);
        QString sKey = key;
        actItem->setPlainText("Activation Key: (" + sKey + ")");
    }
    else {
        actItem->setPlainText("Activation Key: RECORDING");
    }
    scene->addItem(actItem);

    QBrush onB(font);
    QPen onP(font);
    scene->addRect(160,150,40,40, onP, onB);
    scene->addRect(160,200,40,40, onP, onB);

    QFont onFont("Times", 11, QFont::Bold);
    QGraphicsTextItem * onItem = new QGraphicsTextItem;
    onItem->setPos(166,158);
    if (on) {
        onItem->setDefaultTextColor(Qt::yellow);
    }
    else {
       onItem->setDefaultTextColor(Qt::black);
    }
    onItem->setFont(onFont);
    onItem->setPlainText("On");
    scene->addItem(onItem);

    QFont offFont("Times", 11, QFont::Bold);
    QGraphicsTextItem * offItem = new QGraphicsTextItem;
    offItem->setPos(166,208);
    if (on) {
        offItem->setDefaultTextColor(Qt::black);
    }
    else {
       offItem->setDefaultTextColor(Qt::yellow);
    }
    offItem->setFont(offFont);
    offItem->setPlainText("Off");
    scene->addItem(offItem);

    if (recording) {
        QBrush recB(Qt::red);
        QPen recP(Qt::red);
        scene->addRect(60,80,30,30, recP, recB);
    }
    else {
        QBrush recB(font);
        QPen recP(font);
        scene->addRect(60,80,30,30, recP, recB);
    }

    QBrush loadB(font);
    QPen loadP(font);
    scene->addRect(140,80,30,30, loadP, loadB);

    QFont loadFont("Times", 7, QFont::Bold);
    QGraphicsTextItem * loadItem = new QGraphicsTextItem;
    loadItem->setPos(140,85);
    loadItem->setDefaultTextColor(Qt::black);
    loadItem->setFont(loadFont);
    loadItem->setPlainText("Load");
    scene->addItem(loadItem);

    QFont recFont("Times", 8, QFont::Bold);
    QGraphicsTextItem * recItem = new QGraphicsTextItem;
    recItem->setPos(61,83);
    recItem->setDefaultTextColor(Qt::black);
    recItem->setFont(recFont);
    recItem->setPlainText("Rec");
    scene->addItem(recItem);

}
コード例 #28
0
void OverviewDockWidget::addOverviewShape(OwlClass *cls)
{
    qreal x = cls->overviewshape->pos().rx();
    qreal y = cls->overviewshape->pos().ry();
    int stat = cls->overviewshape->getStatus();

    int gid = getGItemID(cls->shortname);
    if(gid!=-1){
        if(stat==gitem_status[gid]){
            QPropertyAnimation * ani = new QPropertyAnimation(gitems[gid], "pos");
            ani->setDuration(600);
            ani->setStartValue(oripos[gid]);
            qreal ex = oripos[gid].rx() + (x - oriabspos[gid].rx());
            qreal ey = oripos[gid].ry() + (y - oriabspos[gid].ry());
            ani->setEndValue(QPointF(ex, ey));
            oripos[gid]=QPointF(ex,ey);
            oriabspos[gid]=QPointF(x,y);
            ani_group->addAnimation(ani);

            return;
        }
        else{
            m_scene->removeItem(gitems[gid]);
            gitems.removeAt(gid);
            gitem_status.removeAt(gid);
            oripos.removeAt(gid);
            oriabspos.removeAt(gid);
        }
    }

    OverviewShape *its = NULL;
    switch(stat)
    {
    case OverviewClassShape::STATUS_Hide:
        break;
    case OverviewClassShape::STATUS_OutDetailview:
//        it = m_scene->addRect(x-2,y-2,4,4,QPen(QColor("black")),QBrush(QColor("gray")));
        its = new OverviewShape();
        its->setRect(x-2,y-2,4,4);
        its->setPen(QPen(QColor("black")));
        its->setBrush(QBrush(QColor("gray")));
        m_scene->addItem(its);

//        cout<<"x,y = "<<x<<","<<y<<endl;
//        cout<<"POS = "<<its->pos().rx()<<","<<its->pos().ry()<<endl;

        break;
    case OverviewClassShape::STATUS_InDetailview_Default:
//        it = m_scene->addRect(x-3,y-3,6,6,QPen(QColor("black")),QBrush(OwlClass::CLASS_SHAPE_COLOR));
        its = new OverviewShape();
        its->setRect(x-3,y-3,6,6);
        its->setPen(QPen(QColor("black")));
        its->setBrush(QBrush(OwlClass::CLASS_SHAPE_COLOR));
        m_scene->addItem(its);

        break;
    case OverviewClassShape::STATUS_InDetailview_Focused:
//        it = m_scene->addRect(x-3,y-3,6,6,QPen(QColor("black")),QBrush(OwlClass::CLASS_SHAPE_FOCUSED_COLOR));
        its = new OverviewShape();
        its->setRect(x-3,y-3,6,6);
        its->setPen(QPen(QColor("black")));
        its->setBrush(QBrush(OwlClass::CLASS_SHAPE_FOCUSED_COLOR));
        m_scene->addItem(its);
        break;
    case OverviewClassShape::STATUS_InDetailview_SubFocused:
//        it = m_scene->addRect(x-3,y-3,6,6,QPen(QColor("black")),QBrush(OwlClass::SUBCLASS_SHAPE_FOCUSED_COLOR));
        its = new OverviewShape();
        its->setRect(x-3,y-3,6,6);
        its->setPen(QPen(QColor("black")));
        its->setBrush(QBrush(OwlClass::SUBCLASS_SHAPE_FOCUSED_COLOR));
        m_scene->addItem(its);
        break;
    case OverviewClassShape::STATUS_InDetailview_SuperFocused:
//        it = m_scene->addRect(x-3,y-3,6,6,QPen(QColor("black")),QBrush(OwlClass::SUPERCLASS_SHAPE_FOCUSED_COLOR));
        its = new OverviewShape();
        its->setRect(x-3,y-3,6,6);
        its->setPen(QPen(QColor("black")));
        its->setBrush(QBrush(OwlClass::SUPERCLASS_SHAPE_FOCUSED_COLOR));
        m_scene->addItem(its);
        break;
    case OverviewClassShape::STATUS_COMPACT:
    {
        QGraphicsTextItem * io = new QGraphicsTextItem();
        io->setPos(x-8,y-8);
        QFont font;
        font.setPixelSize(7);
        font.setBold(false);
        font.setFamily("Calibri");
        io->setFont(font);
        io->setDefaultTextColor(QColor("black"));

        QString s = QString::number(cls->subclasses.size());
        io->setPlainText(s);

        QGraphicsItem * it = m_scene->addRect(x-6,y-4,12,8,QPen(QColor("black")),QBrush(QColor("pink"),Qt::LinearGradientPattern));
        m_scene->addItem(io);
        this->lines.append(io);
        this->lines.append(it);

        for(int i=0;i<cls->subclasses.size();i++){
            double sx = x+0.0001*i;
            double sy = y+0.0001*i;
            cls->subclasses[i]->overviewshape->setCentrePos(QPointF(sx,sy));
            this->addOverviewShape(cls->subclasses[i]);
            int gidx = getGItemID(cls->subclasses[i]->shortname);
            if(gidx!=-1)this->hideclasses.append(gitems[gidx]);
        }
    }
        break;
    default:
        break;
    }
    if(its != NULL){
        its->setToolTip(cls->shortname);
        oripos.append(its->pos());
        oriabspos.append(QPointF(x,y));
        gitems.append(its);
        gitem_status.append(stat);
    }
}