2
簡而言之,用Qt編寫的相同的可執行文件在一臺Fedora 16 PC中寫出了一個豐富多彩的PDF文件,但是在另一個Fedora 18中寫出了一個灰度文件。可以影響QPen的顏色設置?在Qt中編寫的可執行文件在Fedora 16和18上表現不同12
示例程序如下:
#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上,這個矩形是灰色的!
- 的Fedora 16使用QT-4.8.4-14.fc17.x86_64
- 的Fedora 18使用QT-4.8.4-17.fc18.i686
我甚至試圖複製生成的可執行在F18到F16上,它成功繪製出一個紅色的矩形。
我能弄清楚的唯一原因是有一個神奇的環境變量改變了Qt的默認行爲。但我不知道它是哪個變量。
太棒了!這的確是原因。一旦我將我的默認打印機從灰度激光打印機更改爲PDFWriter,顏色就會回來。因此,確保將ColorMode明確設置爲QPrinter :: Color是最好也是最安全的方法。謝謝您的幫助! –