• 3640阅读
  • 1回复

[提问]Qt4.8.2使用QPainter绘制到QImage中出现杂点? [复制链接]

上一主题 下一主题
离线hjkcai
 
只看楼主 正序阅读 楼主  发表于: 2012-09-01
如题,我的Qt版本是4.8.2,代码如下:
  1. void MainWindow::paintEvent(QPaintEvent *)
  2. {
  3.     QString fn = "/Users/hjkcai/Documents/miui/MiuiSystemUI/res/drawable-hdpi/alert_bar_background_normal.9.png";
  4.     getnpTcInfo(fn); //获取pngFlag的函数
  5.     QImage *p = new QImage(fn);
  6.     QImage *np = new QImage(p->width() + 2, p->height() + 2, QImage::Format_ARGB32);
  7.     QPainter *g = new QPainter(np);
  8.     g->drawImage(1, 1, *p);
  9.     for (int i = 0; i < 4; i++)
  10.     {
  11.         int x = -1, y = -1;
  12.         switch (i)
  13.         {
  14.             case 0:
  15.                 x = 0;
  16.                 y = -1;
  17.                 break;
  18.             case 1:
  19.                 x = np->width() - 1;
  20.                 y = -1;
  21.                 break;
  22.             case 2:
  23.                 x = -1;
  24.                 y = 0;
  25.                 break;
  26.             case 3:
  27.                 x = -1;
  28.                 y = np->height() - 1;
  29.                 break;
  30.         }
  31.         for (int j = 0; j < pngFlag[i].length(); j++)
  32.         {
  33.             if (!pngFlag[i][j]) continue;
  34.             g->drawPoint(x == -1 ? j + 1 : x, y == -1 ? j + 1 : y);
  35.         }
  36.     }
  37.     g->end();
  38.     g->begin(this);
  39.     g->drawImage(50, 50, *np);
  40.     g->end(); delete g;
  41.     delete np; delete p;
  42. }
运行后画出来的图是这样的:




如果变量g初始化时直接让它画在QWidget上就不会出现这种情况:




求大神帮忙...我要把这个图保存到文件里的,如果有杂点根本就不能用啊
离线程序之家
只看该作者 1楼 发表于: 2012-09-02
楼主,你是怎么安装配置QT4.8.2的啊。
快速回复
限100 字节
 
上一个 下一个