Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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:如何打印QFile?_Qt_Qfile_Qprinter - Fatal编程技术网

Qt:如何打印QFile?

Qt:如何打印QFile?,qt,qfile,qprinter,Qt,Qfile,Qprinter,实际上,我有一个通过Qt生成的CSV文件。我需要为用户添加一个打印选项,以便在不打开文件的情况下按原样打印CSV文件(如果可能) 我试图寻找解决办法。但无法找到解决问题的方法 有谁能给我推荐打印QFile的方法吗??是否有任何函数可以打印QFile???创建一个带有CSV内容的QTextDocument设置,并调用print()方法。您使用的是linux吗?使用QProcess运行此终端命令 lpr -P "printername" "path+filename" 编辑: 请尝试此操作,因为您

实际上,我有一个通过Qt生成的CSV文件。我需要为用户添加一个打印选项,以便在不打开文件的情况下按原样打印CSV文件(如果可能)

我试图寻找解决办法。但无法找到解决问题的方法


有谁能给我推荐打印QFile的方法吗??是否有任何函数可以打印QFile???

创建一个带有CSV内容的
QTextDocument
设置,并调用
print()
方法。

您使用的是linux吗?使用QProcess运行此终端命令

lpr -P "printername" "path+filename"
编辑: 请尝试此操作,因为您正在使用windows

c:> lpr -Sprinter's IP address [-Poption] [-ol] \path\file name

来自,但我无法测试它,因为我正在使用ubuntu。

如果我理解正确,您已经生成了内容,并最终希望在保存到CSV文件之前打印预览?Sebastian Lange,感谢您的回复。我猜QTextDocument只有一个选项用于html,即“setHtml()”。我有一根绳子。实际上,我有一个QSqlTabelModel,它通过QTableView显示,然后根据用户的选择,它可以保存为CSV文件。我还想为用户添加一个选项,以便直接打印它。因此,我所拥有的是作为QString的数据。它确实支持
setPlainText(const QString&text)
,这将导致文档的默认格式。在调用setPlainText后,可以通过打印方法打印。谢谢Sebastian,我尝试了你的建议。它在下一行包装额外的列。在我的例子中,有24列带有标题。这个过程能够在第一行打印12-15列,其余的被包装到第二行。(类似c1-c12\n c13-c24)你能帮我或建议我删除此错误吗?尝试使用
QTextDocument::setPageSize(QSizeF&fsize)
更新页面。我想你必须自己编程。要从文件中获取任何数据,你必须打开它。因此,在打开文件之前不可能打印它。打开是在OS API级别完成的操作,并不意味着向用户显示任何内容。当然,要打印文本文件,您仍然需要以某种方式对其进行格式化!请澄清你所说的印刷是什么意思。将原始内容(即使用逗号分隔符)打印到标准输出,或者您想要CSV表的精美打印输出,等等?谢谢您的评论。我只想用逗号分隔符打印CSV。谢谢reggie。你的想法很好。我正在使用Windows xp。默认打印机是否有类似的Dos命令?这是一个很好的提示,我可以试试。