crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Движение стрелок в часах
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
igor_bogomolov Дата 6.12.2010, 19:06
 
ui->graphicsViewdet->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
Snikersoman Дата 6.12.2010, 18:15
  Здравствуйте еще раз господа программисты, вращение стрелок было реализовано, однако возникла проблема с незначительными искажениями изображения при повороте Картинка стрелочкой отмечена стрелка после поворота.
Как можно избавиться от подобных искажений?
Код:
  QGraphicsScene *scene = new QGraphicsScene;
QPixmap img(":/images/strelk1.PNG");
QGraphicsPixmapItem * p = scene->addPixmap(img);
p->moveBy(285,302);
p->setRotation(-u);
ui->graphicsViewdet->setScene(scene);
Snikersoman Дата 4.12.2010, 14:30
 
Цитата(igor_bogomolov @ 2.12.2010, 1:12) *
Какой кошмар. Как вы вообще такое выдумали (без обид) :)

Я чувствую себя доктором Франкенштейном, когда смотрю на свою программу: детище ужасно) , но все равно горжусь им тк собрал его своими руками))
Цитата(igor_bogomolov @ 2.12.2010, 1:12) *
Примерно так должно быть

QGraphicsScene *scene = new QGraphicsScene;
QPixmap img(":/images/1.PNG");
QGraphicsPixmapItem * p = scene->addPixmap(img);
p->setRotation(90);
ui->graphicsView->setScene(scene);

Так и сделал все чудесно работает СПАСИБО!
igor_bogomolov Дата 2.12.2010, 1:12
  Какой кошмар. Как вы вообще такое выдумали (без обид) :)
Делайте всё через графическую сцену. Никаких QPainter там в принципе быть не должно. У графических элементов достаточно готовых функций для любых трансформаций.

Примерно так должно быть
QGraphicsScene *scene = new QGraphicsScene;
QPixmap img(":/images/1.PNG");
QGraphicsPixmapItem * p = scene->addPixmap(img);
p->setRotation(90);
ui->graphicsView->setScene(scene);


Что касается реализации часов, готовых примеров при достаточно. Поищи на qt-apps.org
Или тут (ссылка) есть нечто похожее, сделанное при момощи svg графики.
А ещё для этой задачи неплохо подходит qml (ну это так, для развития)
Snikersoman Дата 1.12.2010, 21:40
  Доброго времени суток уважаемые программисты!
Прошу вашего совета по такому поводу- пытаюсь написать часы со стрелками, от них требуется:
1)Вывод изображения в QGraphicsScene или же в чем то подобном, чтобы была возможность прилепить все это в Qt Designer к форме
2)Изображения циферблата со стрелками берем из файлов(PNG) лежат около экзешника

Как я это вобще себе представляю: сначало рисуем под нужным углом стрелочки, вставляем изображение циферблата, красиво выводим в ui форме :)
Теперь собственно вопросы:
Когда я вращаю элипс таким методом проблем нет
painter.save();
painter.rotate(90);
painter.setPen(QPen(Qt::black, 12 , Qt::DashDotDotLine, Qt::RoundCap));
painter.setBrush(QBrush(Qt::green, Qt::SolidPattern));
painter.drawEllipse(80, 80, 400, 240);
painter.restore();

а когда я делаю так:
painter.save();
painter.rotate(90);
painter.drawPixmap(0,0,QPixmap(":/images/1.PNG"));
painter.restore();

нифига не выводится:( -Вопрос 1 подскажите как картинку правильно вывести
Еще такое дело:
Раскрывающийся текст
QGraphicsScene *scene = new QGraphicsScene;
    QPainter painter(this);
QPixmap img;
painter.begin(&img);
painter.save();
painter.rotate(180);
painter.drawPixmap(0,0,QPixmap(":/images/1.PNG"));
img.load(":/images/1.PNG");
painter.setPen(QPen(Qt::black, 12 , Qt::DashDotDotLine, Qt::RoundCap));
painter.setBrush(QBrush(Qt::green, Qt::SolidPattern));
painter.drawEllipse(0, 0, 40, 24);

painter.rotate(90);
painter.restore();
painter.end();
QGraphicsPixmapItem * p = scene->addPixmap(img);

ui->graphicsView->setScene(scene);

Пытаюсь вывести свою картинку через QGraphicsScene - выводить выводит а вращать не вращаети что то мне подсказывает что вывожу я криво)- Вопрос 2 как вывести QPixmap через QGraphicsScene чтобы можно было вращать?
Ежели подскажите другие рабочие методы буду очень благодарен :rolleyes:
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 16:56