简而言之,用Qt编写的相同可执行文件在一台Fedora 16 PC中写出了一个彩色PDF,但在另一台Fedora 18上写出了一个灰度级。是否有任何环境变量会影响QPen的颜色设置?
示例程序如下:
#include <QPrinter>
#include <QApplication>
#include <QPainter>
int main(int argc, char *argv[]) {
QApplication app(argc, argv, false);
QPrinter printer(QPrinter::ScreenResolution);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("test.pdf");
printer.setPaperSize(QPrinter::A4); // default A4
QPainter painter;
if(!painter.begin(&printer)) return 3;
QPen pen;
pen.setColor(Qt::red);
painter.setPen(pen);
painter.drawRect(100, 100, 50, 50);
painter.end();
return 0;
}
在Fedora 16上,它绘制一个红线矩形。然而,在另一个Fedora 18上,矩形是灰色的!
我甚至尝试将F18上生成的可执行文件复制到F16,它成功绘制了一个红色矩形。
我能弄明白的唯一原因是有一个神奇的环境变量可以改变Qt的默认行为。但是我不知道它是哪个变量。