Можно ли в Qt заполнить определенным цветом (закрасить) произвольный QGraphicsItem, если он УЖЕ нарисован. Если да то как?
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
void runWindow::onPaint (QString args) { qreal x = 0, y =0; //x,y short c = 0; //color QStringList lstArgs = args.split(","); int args_count = lstArgs.count(); if (args_count < 2) { QMessageBox msg; msg.setText("Please add arguments"); msg.setWindowTitle("Error, aborting..."); msg.exec(); return; } QString arg; QList<qreal> argsN; //числа foreach (arg, lstArgs) { arg.remove('(').remove(')'); //удаляем скобки argsN.append(arg.toDouble());
} switch (argsN.count()) { case 3: //по-обычному x = argsN.at(0); y = argsN.at(1); c = argsN.at (2);
QGraphicsItem *it = m_ui->gview->itemAt(x,y); if (it == 0) {qDebug("null pointer");} //draw polygon a /************************** ЗДЕСЬ Я ЗАПУТАЛСЯ СОВСЕМ. ПОМОГИТЕ!! :D Нужно решить следующую задачу. Залить цветом (с) элемент QGraphicsItem *it. Если он ни на что не указывает,залить всю сцену выбранным цветом. Спасибо *******************************/
//select Item
} }
|
Я пишу свою реализацию QBasic, этот вопрос относится к функции PAINT
полный текст проблемы в файле runwindow.cpp, строка 124
GIT: git://github.com/pashazz/qtqbasic.git
Благодарен за любую помощь.
Если Итем у тебя отдельный класс наследник класса QGraphicsItem. То в нем определяешь ф-цию перерисовки, и ее вызываешь, у меня так подобное реализовано.