用Qt编写的可执行文件在Fedora 16和18上表现不同
Executable written in Qt behaves differently on Fedora 16 and 18
简而言之,用Qt编写的同一个可执行文件在一台Fedora 16 PC上输出彩色PDF,但在另一台Fedora 18上输出灰度PDF。有什么环境变量会影响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上,矩形是灰色的!
- Fedora 16使用qt-4.8.4-14.fc17.x86_64 Fedora 18使用qt-4.8.4-17.fc18.i686
我甚至尝试将F18上生成的可执行文件复制到F16上,它成功地绘制了一个红色矩形。
我能弄清楚的唯一原因是有一个神奇的环境变量改变了Qt的默认行为,但是我不知道它是哪个变量。
这可能是由于各自系统的默认打印机的设置(我的猜测)。如果你想强制它上色,使用QPrinter::setColorMode.
相关文章:
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- cmake如何在fedora工作站中找到boost静态库包
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 如何在Qt C++中更改光标
- 如何在MS Visual Studio 2019中运行QT UI
- QT通过C++添加映射QML项目
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用Qt C++计算类似Git的SHA1哈希
- Qt focusObjectChanged example?
- 如何在cpp文件之间切换窗口?在Qt中
- Qt和C++:将QLineEdit添加到QTabWidget中
- Qt上的Fedora V-Play:找不到库
- mysql driver for qt database fedora
- 使Qt应用程序在Fedora 20上失败:/usr/bin/ld:找不到-lGL
- 用Qt编写的可执行文件在Fedora 16和18上表现不同
- 让Qt在Fedora 12中工作