簡體   English   中英

如何在Qt中縮放具有亞像素寬度的線?

[英]How to scale a line with sub-pixel width in Qt?

我想在原始圖像坐標系中顯示帶有線條和多邊形的縮放圖像,其中像素始終為1x1正方形,而與顯示縮放無關。 例如,我想顯示一條從像素(0,0)中心到像素(9,9)中心的細線段,但是下面的代碼段會產生一條粗線,因為比例尺很高:

int main(int argc, char *argv[])
{
  const int scale = 44;

  QApplication   a(argc, argv);
  QGraphicsScene scene;
  QGraphicsView  view(&scene);
  QImage         image("test.bmp");
  auto           line = new QGraphicsLineItem (0.5, 0.5, 9.5, 9.5);

  line->setPen(QPen(Qt::blue));
  scene.addPixmap(QPixmap::fromImage(image));
  scene.addItem(line);
  view.scale(scale, scale);
  view.show();

  return a.exec();
}

如何將比例尺應用到寬度之前 ,使這條線變細,使其具有亞像素厚度,從而最終厚度小於scale的值?

這可以通過使用重新縮放的坐標(比例* 0.5,比例* 0.5,比例* 9.5,比例* 9.5)來實現,但是我想避免這種情況。

看一下void QPen :: setWidth(int width)void QPen :: setWidthF(qreal width)

QPen pen(Qt::blue);
pen.setWidth(0);

line->setPen(pen);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM