精华内容
下载资源
问答
  •  1 新建项目 A  修改pro中的内容如下: HEADERS += \   MyWidget.h   SOURCES ...QT += gui widgets printsupport B  编写MyWidge
    

    1 新建项目

    A  修改pro中的内容如下:

    HEADERS += \

        MyWidget.h

     

    SOURCES += \

        MyWidget.cpp

     

    QT += gui widgets printsupport

    B  编写MyWidget.h

    #ifndef MYWIDGET_H
    #define MYWIDGET_H
     
    #include <QWidget>
    #include <QGraphicsScene>
    #include <QGraphicsLineItem>
    #include <QGraphicsPixmapItem>
    #include <QGraphicsTextItem>
    #include <QGraphicsPixmapItem>
    #include <QGraphicsItemAnimation>
    #include <QTimeLine>
     
    #include <QPrintPreviewDialog>  // preview
    #include <QPrintDialog>         // print
     
    // display scene
    #include <QGraphicsView>
     
    #include <QTimer>
    #include <QDateTime>
     
    class MyWidget : public QWidget
    {
        Q_OBJECT
    public:
        explicit MyWidget(QWidget *parent = 0);
        void paintEvent(QPaintEvent *);
     
        QGraphicsScene* _scene;  // data model
        QGraphicsView* _view;   // show the data model
     
        void resizeEvent(QResizeEvent *);
        void mousePressEvent(QMouseEvent *);
     
        QTimer* _timer;
    signals:
     
    public slots:
        void slotPaintRequested(QPrinter*);
        void slotTimeout();
     
    };
     
    #endif // MYWIDGET_H

    C 编写MyWidget.cpp,内容如下:

    #include "MyWidget.h"
    #include <QApplication>
    #include <QVBoxLayout>
    #include <QMouseEvent>
    #include <QDebug>
    #include <QPrinter>
     
    MyWidget::MyWidget(QWidget *parent) :
        QWidget(parent)
    {
        QGraphicsLineItem* lineItem;
        QGraphicsTextItem* textItem;
        QGraphicsPixmapItem* pixmapItem;
     
        //定义一个view
        _view = new QGraphicsView(this);
        //view的背景颜色编程黄色的
        _view->setBackgroundBrush(Qt::yellow);
     
        //view中添加scene
        _view->setScene(_scene = new QGraphicsScene);
     
        //scene中添加一条线
        _scene->addItem(lineItem = new QGraphicsLineItem(QLineF(QPointF(0, 0), QPointF(100, 100))));
        //scene中画线
        _scene->addItem(textItem = new QGraphicsTextItem("Hello world"));
        //scene中添加一个pixmap
        _scene->addItem(pixmapItem = new QGraphicsPixmapItem(QPixmap("../aaa.png")));
     
        //定义一个转换
        QTransform trans;
        //这个转换效果可以旋转30
        trans.rotate(30);
     
        textItem->setPos(QPointF(0, 300));
        textItem->setTransform(trans);
        textItem->setFont(QFont("aaa", 50, 700, true));
     
        pixmapItem->setPos(100, 100);
     
        //Animation 等价于 cocos2dx中的Action(动作)
        QGraphicsItemAnimation* animation = new QGraphicsItemAnimation;
        animation->setItem(pixmapItem);
     
        //设置一个事件线,表示执行一次动作所需要的时间,以毫秒值为参数
        QTimeLine* timeline = new QTimeLine(3000);
        //表示这个动作循环执行多少次
        timeline->setLoopCount(2);
     
        //这个动画开始以timeline为配置执行动作
        animation->setTimeLine(timeline);
        //1秒内,移动到200200这个位置
        animation->setTranslationAt(1, 200, 200);
     
        //开始执行
        timeline->start();
     
        /**************上面代码是可以独立运行的****************/
        //下面的方式定义一个定时器
        _timer = new QTimer();
        //每隔1秒钟执行一次
        _timer->setInterval(1000);
        //使信号和槽函数联系起来执行
        connect(_timer, SIGNAL(timeout()), this, SLOT(slotTimeout()));
        _timer->start();
     
        //下面的方法让定时器只执行一次
        //QTimer::singleShot(1000, this, SLOT(slotTimeout()));
    }
     
    /**
     * @brief MyWidget::slotTimeout 每隔1秒钟会执行下面的函数一次
     */
    void MyWidget::slotTimeout()
    {
        qDebug() << "Time out";
    }
     
    //上面运行出的结果如下:
    
    
    void MyWidget::resizeEvent(QResizeEvent *)
    {
        // set the size of _view = MyWidget::size
        _view->setGeometry(QRect(QPoint(0, 0), size()));
    }
     
    void MyWidget::paintEvent(QPaintEvent *)
    {
    }
     
    /* 
     * QPixmap 平台优化了的一种图,人看起来是一样的,但是在不同的平台,调用的不同平台的底层接口
     * QImage 在所有的平台都是一样的,这里是一个位图
     * QBitmap 灰度图
     * QPicture 说白了就是一个轨迹图,通过这个轨迹图能够画图图像
     */
    void MyWidget::mousePressEvent(QMouseEvent *ev)
    {
        if(ev->button() == Qt::RightButton)
        {
    #if 0   //只需放开下面的代码即可执行,放开这里的时候,当右击鼠标的
            //时候发现在相应的目录下出现了图片
            // save the view 通过下面的一段代码实现了将窗口中的内容保存到图片上了
            // 这里的size()是窗口的大小
            QPixmap pixmap(size());
            QPainter painter(&pixmap);
            painter.fillRect(QRect(0, 0, size().width(), size().height()), Qt::white);
     
            _view->render(&painter);
            pixmap.save("../bbb.png");
     
    //这里运行的结果如下:
    #endif
    #if 0
            //下面是打印预览的功能,放开此处的时候右击鼠标的时候会出现打印预览的功能
            QPrintPreviewDialog dlg;
            connect(&dlg, SIGNAL(paintRequested(QPrinter*)), this, SLOT(slotPaintRequested(QPrinter*)));
            dlg.exec();
    //这里的运行结果如下:
    #endif
    #if 0   //下面的打印的功能,放开此处会出现让选择打印机的窗口
            QPrintDialog dlg;
            connect(&dlg, SIGNAL(accepted(QPrinter*)), this, SLOT(slotPaintRequested(QPrinter*)));
            dlg.exec();
    //这里的运行结果如下:
    #endif
        }
    }
     
    void MyWidget::slotPaintRequested(QPrinter *printer)
    {
        QPainter painter(printer);
        _scene->render(&painter);
        //说明直接可以通过painter打印出文字
        painter.drawText(QPoint(100, 100), "Fuck");
    }
     
    int main(int argc, char* argv[])
    {
        QApplication app (argc,argv);
     
        MyWidget w;
        w.showMaximized();
        return app.exec();
    }

     

    展开全文
  • 如题 ,我把条形码生成一个条码图片,然后嵌入html中进行打印,但是打印出来后条码枪无法识别条形码,该怎么办,跪求大神!
  • qt+zint实现条形码打印

    2015-10-09 09:19:44
    通过zint生成条形码图片,通过qt图片绘制打印机,需要打印机支持绘制图片,在vs2010+qt5.4.0+win7+zint2.4.3编译运行正常
  • (1)思路1:可以通过Poppler类来读取pdf中的内容,并转化成图片,再 打印这些图片。这个方法的瑕疵是,需要在打印的时候准确的写出一页图片在A4纸上的打印坐标和大小。否则会导致与原文不同。 (2)思路2:调用...

    1、目的

    如题,打印pdf文件中的内容。

    2、思路

    (1)思路1:可以通过Poppler类来读取pdf中的内容,并转化成图片,再 打印这些图片。这个方法的瑕疵是,需要在打印的时候准确的写出一页图片在A4纸上的打印坐标和大小。否则会导致与原文不同。

    (2)思路2:调用系统接口,让windows来打印。这个方法有一个注意点,就是传入的文件路径一定要是绝对路径。具体到哪一个磁盘开始。

    3、关键代码(我是用的是思路2)

    
    
    
    
    /*
    这里的filename名字代表的是相对路径,在函数中,filepath是绝对路径。
    */
    bool MyPrintPreViewDialog::printPDF(QString fileName)
    {
        QPrinter printer;
        QString printerName = printer.printerName();
        // no default printer or no file return false
        if( printerName.size() == 0 || fileName.size() == 0)
            return false;
        QFileInfo fi(fileName);
        QString filePath = fi.absoluteFilePath();
        if(!fi.exists())
            return false;
        int ret = 0;
        ret = (int)ShellExecuteW(NULL,
                                 QString("print").toStdWString().c_str(),
                                 filePath.toStdWString().c_str(),
                                 NULL,
                                 NULL,
                                 SW_HIDE);
        // if return number bigger than 31 indicate succ
        qDebug()<<"ret:"<<ret<<"--SE_ERR_NOASSOC:"<<SE_ERR_NOASSOC;
        qDebug()<<"filePath:"<<filePath.toStdWString().c_str();
        if (ret > SE_ERR_NOASSOC)
            return true;
        return false;
    
    }

    注意:

    需要包含头文件:#include <windows.h>

     

    4、其他

    欢迎讨论!

    展开全文
  • 1. 包含了zint原始代码,可...2. 采用zint输出svg格式的一维条形码,然后把svg图片转换为png,然后在qt中的label显示,并且把png文件存本地。 3. 采用QPrinter的方式,直接打印png图片,在条形码机器上输出没有问题。
  • Qt的文章快速查找

    2020-09-20 20:29:49
    一、Qt自己写的测试例子 Serialport的开机自连和检测插拔 连接wifi QCharts 动态实时显示多条折线图 ... 生成PDF(图片生成,文本生成) 应用程序分辨率自适应 QSystemTrayIcon系统托盘 简单的类似酷

    一、Qt自己写的测试例子

    1. Serialport的开机自连和检测插拔
    2. 连接wifi
    3. QCharts 动态实时显示多条折线图
    4. 切换语言的方法(传统数组法与Qt语言家)
    5. 线性回归之最小二乘法
    6. QPropertyAnimation
    7. Drop 实现拖放文件
    8. 导出文件到excel
    9. 导入文件到excel
    10. excel转换为csv
    11. 导出文件到word(使用QAxObject)
    12. 打印功能
    13. 生成PDF(图片生成,文本生成)
    14. 应用程序分辨率自适应
    15. QSystemTrayIcon系统托盘
    16. 简单的类似酷狗的播放列表
    17. 根据MAC生成对应序列码(QCryptographicHash加密)
    18. 简单16位加密(AES加密)
    19. 设置网络自动获取和静态获取ip
    20. 开发板和电脑通过网线通信
    21. 串口通信(各配置参数测试)
    22. 模糊搜索(QCompleter的使用)
    23. 启动和杀死第三方程序
    24. QComboBox的showPopup和hidePopup
    25. QPushButton的重绘背景(绘制扇形, paintEvent)
    26. 控件类的提升
    27. 输出日志
    28. 重写 QCoreApplication::notify 过滤消息
    29. 设置窗口边框的圆角
    30. 正则表达式限制输入范围

    二、Qt环境

    1. 移植Qt5.5到arm开发板
    2. 打包成一个可执行的exe程序
    3. QCreator快捷键大全
    4. Qt经常用到的控件样式表
    5. 支持usb触摸屏热插拔
    6. 应用程序为什么能在开发板上运行
    7. Qt4和Qt5的环境变量区别(QPA和QWS)
    8. 嵌入式Linux中基于 Qt/Embeded触摸屏驱动的设计

    三、Qt特性

    1. 销毁机制
    2. 信号与槽 connect新语法(自动关联)
    3. Property
    4. 隐式共享
    5. 元对象(Meta-Object)系统
    6. 属性系统
    7. 对象模型
    8. 信号与槽总结
    9. 信号和槽机制和回调函数区别
    10. 隐式转换和explicit作用
    11. moc,uic,rcc命令的使用
    12. D指针和P指针

    四、Qt其他

    1. QMap
    2. 一个类成员函数调用另一个类成员的方法


     

     

     

     

     



     

    展开全文
  • QT学习笔记二

    2018-04-01 23:40:41
    布局管理 布局管理器 基本布局管理器 栅格布局管理器 表单布局管理器 ...表格、列表和图片 ...打印文档 ...Qt中主要提供了QLayout类及其子类来作为...当部件加入一个布局管理器中,然后这个布局管理器再放一个窗口部...

    布局管理

    布局管理器

    Qt中主要提供了QLayout类及其子类来作为布局管理器
    布局管理器
    当部件加入到一个布局管理器中,然后这个布局管理器再放到一个窗口部件上时,这个布局管理器以及它包含的所有部件都会自动重新定义自己的父对象(parent)为这个窗口部件。

    基本布局管理器

    QBoxLayout类可以使子部件在水平方向或者垂直方向排成一列,它将所有的空间分成一行盒子,然后将每个部件放入一个盒子中。
    它有两个子类QHBoxLayout水平布局管理器和QVBoxLayout垂直布局管理器。

    栅格布局管理器

    QGridLayout类使得部件在网格中进行布局,它将所有的空间分隔成一些行和列,行和列的交叉处就形成了单元格,然后将部件放入一个确定的单元格中。

    表单布局管理器

    QFormLayout类用来管理表单的输入部件和与它们相关的标签。窗体布局管理器将它的子部件分为两列,左边是一些标签,右边是一些输入部件,比如行编辑器或者数字选择框等。

    设置部件大小

    凡是继承自QWidget的类都有这两个属性:大小提示(sizeHint)和最小大小提示(minimumSizeHint)。

    分裂器

    QSplitter类提供了一个分裂器部件,包含在它里面的部件,默认是可以随着分裂器的大小变化而进行相应大小变化的。

    设置伙伴

    为了方便定位,QLabel提供了一个有用的机制,那就是提供了助记符来设置键盘焦点到对应的部件上,而这个部件就叫做这个QLabel的伙伴(buddy)。

    应用程序主窗口

    在Qt中提供了以QMainWindow类为核心的主窗口框架,它包含了众多相关的类

    主窗口框架

    主窗口框架
    QAction是一种命令动作,它可以同时放在菜单和工具栏中。一个QAction动作包含了一个图标,一个菜单显示文本,一个快捷键,一个状态栏显示文本,一个“What’s This?”显示文本和一个工具提示文本。这些都可以在构建QAction类对象时在构造函数中指定。

    // 添加编辑菜单
    QMenu *editMenu = ui->menuBar->addMenu(tr("编辑(&E)"));
    
    // 添加打开菜单
     QAction *action_Open = editMenu->addAction(             
    QIcon(“../images/open.png"),tr("打开文件(&O)"));
    
    // 设置快捷键
    action_Open->setShortcut(QKeySequence("Ctrl+O"));       
    
    // 在工具栏中添加动作
    ui->mainToolBar->addAction(action_Open);                
    

    富文本处理

    富文本(Rich Text)或者叫做富文本格式,简单来说就是在文档中可以使用多种格式,比如字体颜色、图片和表格等等。它是与纯文本(Plain Text)相对而言的,比如Windows上的记事本就是纯文本编辑器,而Word就是富文本编辑器。

    富文本文档结构

    因为QTextEdit类就是一个富文本编辑器,所以在构建QTextEdit类的对象时就已经构建了一个QTextDocument类对象和一个QTextCursor类对象,只需调用它们进行相应的操作即可。

    富文本
    一个空的文档包含了一个根框架(Root frame),这个根框架又包含了一个空的文本块(Block)。框架将一个文档分为多个部分,在根框架里可以再添加文本块、子框架和表格等。
    文档

    QTextDocument *document = ui->textEdit->document(); //获取文档对象
    
    QTextFrame *rootFrame = document->rootFrame();      // 获取根框架
    
    QTextFrameFormat format;                            // 创建框架格式
    
    format.setBorderBrush(Qt::red);                     // 边界颜色
    
    format.setBorder(3);                                // 边界宽度
    
    rootFrame->setFrameFormat(format);                  // 框架使用格式
    

    文本块

    一个文本块QTextBlock可以看做是一个段落,但是它不能使用回车换行,因为一个回车换行就表示创建一个新的文本块。
    文本块的格式由QTextBlockFormat类来处理,它主要涉及对齐方式,文本块四周的边白,缩进等内容。
    文本块中的文本内容的格式,比如字体大小、加粗、下划线等内容,则由QTextCharFormat类来设置。

    表格、列表和图片

    QTextTableFormat、QTextListFormat、QTextImageFormat

    语法高亮

    继承QSyntaxHighlighter类,重新实现highlightBlock()函数

    HTML

    拖放操作

    打印文档

    展开全文
  • QT5把所有打印的相关类,包括QPrinter、QPrintDialog都放Qt Print Support模块,如果你只是在.cpp文件中包含QPrinter库,在编译阶段就会报错,你需要先修改.pro文件,加上这句: QT += printsupport 告诉QT,这...
  • 问题如题目所示,项目是深度学习项目,训练过程中就会不断的打印一些新的信息,包括训练过程中的loss值等等。 一般情况下都是直接显示在terminal上,这里想要用pyqt编写一个界面,实现点击按钮就训练,或者测试。...
  • QTextDocument结合Qprinter打印html文档,但是打印预览里表格的单元格不是单线条的,而是由内框和外框,看起来比较丑,怎么样才能消除这个问题?![图片说明]...
  • from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(780, 577) MainWindow....
  • Qt之配置文件.ini 使用QSettings类 概述:代码示例:.h.cpp打印输出ini文件内容图片over:文末一句话: 概述: 1.分享一个工作项目中使用数据库为了方便迁移数据库,所以把数据库的名字密码等相关信息写配置文件....
  • 开发环境:windows10+vs2019+vc2015+qt5.12.1 运行环境:Windows7 2 功能:在QRadioButton上做hover显示浮动图片. 1) 问题:通过父窗口的eventFilter监测事件时,在Windows10上开发,监测的事件是QEvent::...
  • 后来尝试加入accept()发生错误,显示找不函数 ![图片说明](https://img-ask.csdn.net/upload/201903/19/1553001549_42084.png) ![图片说明]...
  • 最近在编写一个试验程序,中间需要用到读取一个文件夹中全部txt文件的操作,便谢了个小程序返回指定文件夹下所有txt文件名的小程序,开始用QT编译运行,才输出一行就报错 截图如下图一二: 开始一直以为是自己程序...
  • Qt 中View ,Scene的简单实用案例

    千次阅读 2019-11-13 16:40:37
    要显示文字,图形,图形等项目,可以先把这些显示项目的描述数据,添加Scene,然后View设置Scene,即可实现显示的项目。 Scene是一个显示场景,一个场景中可以显示多个显示项目。 View可以看做一个窗口,在窗口...
  • 1.创建一个场景,在该场景中添加部件,比如:图片,文本,直线等等 2.添加动画,将静态部件(如...4.将该窗口的场景输入打印机直接打印(此处是打印为pdf文件); 5.画家可以直接将文本打印; 6.简单的使用定时器;
  • 我把错误打印出来了,`QSqlError("", "Parameter count mismatch", "")` 说是参数错误,我输出了一下从输入框获取的值,是成功的。所以应该是插入那一段代码有问题吧。但是我仔细看了一下我的数据文件,都是匹配的啊...
  • 程序运行第三步导入python模块时出错,try-except打印的信息是: ``` IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE! Importing the numpy c-extensions failed. - Try ...
  • 这是sql server 中的sql 语句 作用是 动态的行转列 drop table #sc2 ...贴上来的这个sql语句虽然比较复杂 但是 我在QT把sql语句打印出来 在复制 sql server 里运行 也是正确的 不太清楚是哪里有问题
  • 照片墙 ... 端口 QT5 Arnaud 的 Undo/Redo 系统(尚未激活) Symbian 端口(不再有人使用它了 :D) 照片墙 "Alchimia" 0.9 (2009-12-08): 带有主屏幕的快速、可靠和集成的工作流程 新内容:Can
  • 最小化系统托盘 Demo 重启窗口Widget 简单的窗口贴边隐藏 嵌入外部窗口 简单跟随其它窗口 调整窗口显示边框 简单探测窗口和放大截图 无边框圆角对话框 无边框自定义标题栏窗口 右下角弹出框 程序重启 自定义...
  • 打印捕获的图片(通过Qt打印模块或pycups) 通过图形用户界面内的设置菜单可高度自定义 组装图片的自定义背景 能够跳过m×n网格中的单个图片(例如,在背景图像中包含徽标) 通过GPIO接口支持外部按钮和指示灯 ...
  • 网管教程 从入门精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...
  • opencv自己生成标定板

    千次阅读 2018-12-11 16:18:11
    使用OpenCV生成标定板图片,然后找打印机进行打印,贴在硬板上,就可以得到一个简易的标定板。 DPI是指屏幕上每个英寸上多少个像素点,涉及到打印出来实际的大小。 效果如下: //编程环境:ubuntu16.04, qt,OpenCV...
  • 支持任意Qt版本,亲测Qt4.6到Qt5.15的所有版本,全部纯Qt编写,QWidget+QPainter绘制。 支持任意编译器,包括但不限于mingw、msvc、gcc、clang等编译器。 支持任意操作系统,包括但不限于windows、linux、mac、...
  • WinSnap for x64

    2010-05-08 15:43:55
    软件具有设置捕捉前延时、自定义捕捉热键、图像文件自动按时间或模板命名、捕捉成功声音提示、预览捕捉图片、图像打印、图像水印、图像反色、图像翻转、图像旋转等功能。捕捉的图像能够以保存图像文件、复制剪贴...
  • 基于ARM平台的数码相框软件开发

    热门讨论 2010-07-24 19:34:47
    数字摄影的兴起不可避免地引起了数码相框的发展,因为仅有不35%的数码照 片被打印。数码相框的基本原理就是采用普通相框的造型,把原来相框中间的照片部分 换成液晶显示屏,配上电源,存储介质等,使得同一个相框...

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

qt打印到图片