在Qt3的应用程序中, 我想用双缓冲的方式来显示界面, 有些字体需要大一下, 有的字体需要小一点的,
我定义了一个QPixmap mwPm的图片变量, 然后定义一个QPainter p; 还定义了一个QFont gft;的变量,
我写了一段代码如下:
QPainter p(&mwPm);
gft.setPointSize(25);
p.setFont(gft);//setFont(gft);
if (p.isActive()){p.end();}
p.begin(&mwPm);
p.drawPixmap(0, 0, pix);
p.drawText(200, 200, QString("Hello World!"));
p.end();
无论设置多大的字体, 在屏幕上显示的字体都没有变化;而如果改成下面的代码就可以了
QPainter p(this);
gft.setPointSize(44);
setFont(gft);
if (p.isActive()){p.end();}
p.begin(this);
p.drawText(100, 100, QString("Hello World!"));
p.end();
问: 为什么改成&mwPm改成this就可以了, 而且不能用p.setFont(gft);只能使用setFont();
我查看了QPainter类, 是有setFont这个成员函数的。请各位dx出来讨论一下。