QT调用打印机的实现
2016-06-25 22:23
387 查看
在QT中,实现打印功能,我们可以通过调用QPrinter类来实现。(这里为pos58热敏打印机)
如下实例:
.h文件:
#include <QPrintDialog>
#include <QPrinter>
#include <QPrintPreviewDialog>
#include <QFileDialog>
#include <QPageSetupDialog>
<pre name="code" class="cpp">namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void doPrint();//打印
private:
Ui::MainWindow *ui;
QSqlDatabase db;//数据库句柄
};
.cpp文件:
void MainWindow::doPrint()//打印
{
// 创建打印机对象
QPrinter printer;
// 创建打印对话框
QString printerName = printer.printerName();
if( printerName.size() == 0)
return;
<pre name="code" class="cpp">//QPrintDialog dlg(&printer, this);
}
如下实例:
.h文件:
#include <QPrintDialog>
#include <QPrinter>
#include <QPrintPreviewDialog>
#include <QFileDialog>
#include <QPageSetupDialog>
<pre name="code" class="cpp">namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void doPrint();//打印
private:
Ui::MainWindow *ui;
QSqlDatabase db;//数据库句柄
};
.cpp文件:
void MainWindow::doPrint()//打印
{
// 创建打印机对象
QPrinter printer;
// 创建打印对话框
QString printerName = printer.printerName();
if( printerName.size() == 0)
return;
<pre name="code" class="cpp">//QPrintDialog dlg(&printer, this);
if (dlg.exec() == QDialog::Accepted) { <pre name="code" class="cpp">QTextDocument doc; //doc.setHtml(htmlString); QFont font = doc.defaultFont(); //font.setBold(true); font.setPointSize(3); doc.setDefaultFont(font); //打印尺寸 QSizeF s = QSizeF(printer.logicalDpiX() * (58 / 25.4), printer.logicalDpiY() * (297 / 25.4)); doc.setPageSize(s); printer.setPageSizeMM(s); printer.setOutputFormat(QPrinter::NativeFormat); <pre name="code" class="cpp">doc.setHtml("hello");//打印hello doc.print(&printer); }
}
相关文章推荐
- Qt学习(三)---------常见问题总结
- QT编译./configure参数的详细解释
- QT时间日期
- QT-创建具有复选框的树形控件
- Qt视频播放器开发无聊写个小项目
- 基于Nanopi2 硬件 交叉编译QT 5.6 (支持硬件OpenGL)
- Qt的元对象系统
- Qt 多线程必知必会
- QTP的退出函数
- Qt操作数据库2
- Qt操作数据库1
- Qt多线程之一:子线程中创建的对象不应再其他线程中被调用,包括使用槽函数的形式
- Qt中emit的作用
- 改变QTreeView项高的方法(改变Delegate行高,或者::data取数据的时候,根据Qt::SizeHintRole进行判断)
- Qt导出Excel的简单实现
- QTableView的表格项中加入图标的方法(重载View::mouseMoveEvent,并使用View::setIconSize函数设置图标的大小)
- Qt限制文本框输入的方法(使用QRegExpValidator,为QLineEdit所独有)
- 浅谈qt 布局器
- d指针在Qt上的应用及实现(d指针能实现二进制兼容)
- QTreeView处理大量数据(使用1000万条数据,每次都只是部分刷新)