2013-05-16 40 views
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的默認行爲。但我不知道它是哪個變量。

回答

2

這可能是由於相應系統的默認打印機的設置(我的猜測)。如果您想強制它變爲彩色,請使用QPrinter::setColorMode

+1

太棒了!這的確是原因。一旦我將我的默認打印機從灰度激光打印機更改爲PDFWriter,顏色就會回來。因此,確保將ColorMode明確設置爲QPrinter :: Color是最好也是最安全的方法。謝謝您的幫助! –

相關問題