0
グラフィックスエディタを実装する方法について少し質問があります。 私はこのメソッドを使用しています: まずマウスの左ボタンがクリックされていることを確認してから、私のQPixmapのevent-> pos()に1ピクセル描画し、その後update()を呼び出します。それを再描画する。また、QPixmap上の2つの点の間に、ボタンが押された状態でマウスを動かすと線がペイントされます。これはかなりうまくいきますが、これを行うためのより最適化された方法があるかどうかを知りたいと思います。ここではいくつかのコードですQPixmapで最適化された図面
void Editor::paintEvent(QPaintEvent *event)
{
painter.drawPixmap(QRect(0, 0, image.width() * zoom , image.height() * zoom),
image);
}
void Editor::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
setImagePixel(event->pos());
}
}
void Editor::mouseMoveEvent(QMouseEvent *event)
{
if(event->buttons() & Qt::LeftButton)
{
setImagePixel(event->pos(), true);
}
}
void Editor::setImagePixel(const QPoint &pos)
{
QPainter painter(&image);
if(image.rect().contains(i, j))
{
painter.begin(&image);
painter.setPen(primaryColor);
painter.drawPoint(i, j);
painter.end();
}
}
うわー...本当に助けてくれてありがとう!^_^ 私はホイールを再発明する必要がないのでとてもうれしいです。良い一日を。 –
もう1つ質問があります。幅の違うペンを使ってみました。しかし、これはあまりいいことではありません - > http://i.imgur.com/lNdKO.png。私はいつもたくさんの道を描くからだと思います。どうすればこれを取り除くことができますか? –
'QPainter :: setRenderHint(QPainter :: Antialiasing、true)'を試しましたか?私はかなり理解していません_私はいつも多くの経路を描いていますが、レンダリング結果に関連しているかわかりません – azf