当前位置: 首页 > news >正文

四川网站建设yijia028美食介绍网站建设论文

四川网站建设yijia028,美食介绍网站建设论文,电商主要是做什么,长春手机网站描述 Qt为打印提供了广泛的跨平台支持。使用每个平台上的打印系统#xff0c;Qt应用程序可以打印到连接的打印机上#xff0c;也可以通过网络打印到远程打印机上。Qt的打印系统还支持PDF文件生成#xff0c;为基本报表生成工具提供了基础。 支持打印的类 下面的类支持选择…描述 Qt为打印提供了广泛的跨平台支持。使用每个平台上的打印系统Qt应用程序可以打印到连接的打印机上也可以通过网络打印到远程打印机上。Qt的打印系统还支持PDF文件生成为基本报表生成工具提供了基础。 支持打印的类 下面的类支持选择和设置打印机和打印输出。 类作用QAbstractPrintDialog用于配置打印机的打印对话框的基本实现QPageSetupDialog配置对话框用于打印机上与页面相关的选项QPrintDialog用于指定打印机配置的对话框QPrintPreviewDialog用于预览和配置打印机输出的页面布局的对话框QPrintEngine定义QPrinter与给定打印子系统交互的接口QPrinter在打印机上作画的装置QPrinterInfo提供对现有打印机信息的访问QPrintPreviewWidget用于预览打印机输出的页面布局的小部件 打印设备 在Qt中打印机由QPrinter表示QPrinter是一个绘图设备它提供了特定于打印的功能例如支持多页和双面输出。因此打印需要使用QPainter在一系列页面上进行绘制就像在自定义小部件或图像上进行绘制一样。 创建一个QPrinter 虽然QPrinter对象可以在不需要用户输入的情况下构造和设置但打印通常是作为用户请求的结果执行的;例如当用户选择File|Print…菜单项。在这种情况下一个新构造的QPrinter对象被提供给QPrintDialog允许用户指定要使用的打印机、纸张大小和其他打印属性。 QPrinter printer;QPrintDialog dialog(printer, this);dialog.setWindowTitle(tr(Print Document));if (editor-textCursor().hasSelection())dialog.addEnabledOption(QAbstractPrintDialog::PrintSelection);if (dialog.exec() ! QDialog::Accepted) {return;}在将QPrinter提供给打印对话框之前也可以通过修改它来设置某些默认属性。例如生成批量报告用于打印的应用程序可以将QPrinter设置为默认情况下写入本地文件而不是写入打印机。 打印页 一旦构造并设置了QPrinter对象就可以使用QPainter对其执行绘画操作。可以通过以下方式来建构和设置一个画家: QPrinter printer(QPrinter::HighResolution);printer.setOutputFileName(print.ps);QPainter painter;painter.begin(printer);for (int page 0; page numberOfPages; page) {// Use the painter to draw on the page.if (page ! lastPage)printer.newPage();}painter.end();由于QPrinter从空白页开始只需要在绘制每个页面后调用newPage()函数最后一页除外。 当调用end()时文档被发送到打印机或写入到本地文件。 坐标系统 QPrinter提供的函数可用于获取有关纸张尺寸(纸张矩形)和可打印区域尺寸(页面矩形)的信息。这些是在逻辑设备坐标中给出的可能与设备本身使用的物理坐标不同这表明打印机能够以比用户显示器更高的分辨率呈现文本和图形。 虽然不需要自己处理逻辑和物理坐标之间的转换但仍然需要将转换应用于绘制操作因为用于在屏幕上绘制的像素测量值对于典型打印机的高分辨率来说通常太小。 打印机和画家坐标系统 paperRect()和pag竖立()函数提供有关用于打印的纸张的大小和可以在其上绘制的区域的信息。 pag竖立()返回的矩形通常位于paperRect()返回的矩形内。当使用QPainter和QPrinter作为底层绘画设备时不需要考虑这些区域的位置和大小;绘制器坐标系统的原点将与页面矩形的左上角重合绘制操作将被剪切到页面可绘制部分的边界上。 绘制文本时绘制系统会自动使用正确的设备度量但是如果需要使用从字体度量获得的信息来定位文本则需要确保在构造QFontMetrics和QFontMetricsF对象时指定了打印设备或者确保使用的每个QFont都是使用接受QPaintDevice参数的构造函数的形式构造的。 打印控件 要打印小部件可以使用QWidget::render()函数。如前所述打印机的分辨率通常高于屏幕分辨率因此必须缩放打印对象。可能还想在页面上定位小部件。下面的代码示例显示了这可能是什么样子。 QPainter painter;painter.begin(printer);double xscale printer.pageRect().width()/double(myWidget-width());double yscale printer.pageRect().height()/double(myWidget-height());double scale qMin(xscale, yscale);painter.translate(printer.paperRect().x() printer.pageRect().width()/2,printer.paperRect().y() printer.pageRect().height()/2);painter.scale(scale, scale);painter.translate(-width()/2, -height()/2);myWidget-render(painter);这将使小部件在页面上居中并缩放使其适合页面。 从复杂小部件打印 某些小部件如QTextEdit和QGraphicsView显示丰富的内容这些内容通常由其他类的实例管理如QTextDocument和QGraphicsScene。因此通常是这些内容处理类通过可用于执行完整任务的函数或通过接受现有QPainter对象的函数提供打印功能。一些小部件提供了方便的函数来公开底层打印特性从而避免了为了调用单个函数而获取内容处理程序的需要。 下表显示了哪个类和函数负责从选择的不同小部件中进行打印。对于不直接公开打印功能的小部件可以通过相应小部件API中的函数获得包含该功能的内容处理类。 QTextEdit需要QPrinter而不是QPainter因为它使用有关配置页面尺寸的信息以便在打印文档中最合适的位置插入分页符。 示例 UI: 需要在.pro中添加 QT printsupportmainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include QMainWindowclass QPrinter;namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent nullptr);~MainWindow();public slots:void doPrint();void doPrintPreview();void printPreview(QPrinter *painter);void createPDF();private slots:void on_action_print_triggered();void on_action_printPreview_triggered();void on_action_create_triggered();private:Ui::MainWindow *ui; };#endif // MAINWINDOW_Hmainwindow.cpp #include mainwindow.h #include ui_mainwindow.h#include QPrinter #include QtPrintSupport/QPrintDialog #include QtPrintSupport/QPrintPreviewDialog #include QFileDialog #include QFileInfoMainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui-setupUi(this); }MainWindow::~MainWindow() {delete ui; }void MainWindow::doPrint() {QPrinter printer;QPrintDialog dlg(printer, this);if(ui-textEdit-textCursor().hasSelection()){dlg.addEnabledOption(QAbstractPrintDialog::PrintSelection);}if(QDialog::Accepted dlg.exec()){ui-textEdit-print(printer);} }void MainWindow::doPrintPreview() {QPrinter printer;QPrintPreviewDialog preview(printer, this);connect(preview, QPrintPreviewDialog::paintRequested, this, MainWindow::printPreview);preview.exec(); }void MainWindow::printPreview(QPrinter *printer) {ui-textEdit-print(printer); }void MainWindow::createPDF() {QString strFileName QFileDialog::getSaveFileName(this, exportPDF, ./, *.pdf);if(!strFileName.isEmpty()){if(QFileInfo(strFileName).suffix().isEmpty()){strFileName.append(.pdf);}QPrinter printer;printer.setOutputFormat(QPrinter::PdfFormat);printer.setOutputFileName(strFileName);ui-textEdit-print(printer);} }void MainWindow::on_action_print_triggered() {doPrint(); }void MainWindow::on_action_printPreview_triggered() {doPrintPreview(); }void MainWindow::on_action_create_triggered() {createPDF(); }结果截图
http://www.sadfv.cn/news/373077/

相关文章:

  • 建网站 教程重庆装修价格
  • 网站开发需要如何压缩代码html5建站系统
  • 网站如何建设移动端数据上传网站
  • 搭建网站有费用吗营销的目的有哪些
  • 广州建设教育网站快速做课件的网站
  • 网站做点线表格经典软文案例50字
  • cps推广优化大师是什么
  • 怎样给网站做网站建设表单教案
  • 旅游网页设计模板网站wordpress 分类文章置顶
  • 学院网站建设报告网站建设与管理需要什么软件
  • app 官方网站 案例如何建设一个自己的网站首页
  • 外贸网站域名用境内还是境外网站商城与网站区别
  • wordpress做出的网站网店美工的意义与发展
  • 北京网站备案拍照地址鼓楼wordpress支付宝扫码支付宝
  • 哪类网站赚钱 优帮云临时网页生成
  • 怎么拥有个人网站中国机械加工网易下拉方法
  • 铁岭手机网站建设上海专业建网站
  • 做物流的网站都有什么作用wordpress 开启多用户
  • 什么网站做外链优化好h5响应式网站建设
  • 如何查询网站备案信息查询北京商城开发
  • 学校网站风格wordpress记录点击数
  • 深圳房价百度搜索排名优化哪家好
  • 网站建设与设计ppt模板下载vue做网站的实例
  • 深圳市网站建设哪家好网站制作需要什么
  • 营销型网站=企业登记代理服装在线设计平台
  • 做打折网站如何新媒体营销工具有哪些
  • 开拓网站建设公司山东大宗商品交易平台
  • 网站界面分类有哪些做ppt网站
  • 前端响应式网站官方网站建设项目询价
  • 厦门市思明区建设局网站c2c平台的产品类型