Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改Qt QPrinter的纸张大小?_Qt - Fatal编程技术网

如何更改Qt QPrinter的纸张大小?

如何更改Qt QPrinter的纸张大小?,qt,Qt,我正在尝试用Qt打印PDF,它工作正常。然而,在某些情况下,我想改变纸张的大小后,我知道多少将真正打印 我正在尝试更改连接到我的qPaint对象的设备的纸张大小,但这不会影响实际输出 以下是我在伪代码中所做的工作: printer = new QPrinter(...); printer->setPaperSize(...); /* eg. A4 */ painter = new QPainter(); painter->begin(printer); determine_pag

我正在尝试用Qt打印PDF,它工作正常。然而,在某些情况下,我想改变纸张的大小后,我知道多少将真正打印

我正在尝试更改连接到我的
qPaint
对象的设备的纸张大小,但这不会影响实际输出

以下是我在伪代码中所做的工作:

printer = new QPrinter(...);
printer->setPaperSize(...); /* eg. A4 */

painter = new QPainter();
painter->begin(printer);

determine_page_size_by_trial_rendering(frame, printer, *painter);

printer->setPaperSize(....); /* eg. A5 */

real_rendering(frame, printer, *painter)

不幸的是,我似乎无法让这一切继续下去。我觉得
QPainter
对象以某种方式将页面大小保持在某个位置,而我无法重置它。

好的-我已经找到了答案,信不信由你。我已经找了一天多了,但结果很简单——我只是摧毁了画家反对的东西,然后打开了一个新的:

painter->end();
painter = new QPainter(printer);
这就解决了