QPrintPreviewDialog Class Reference
[QtGui module]<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

该类提供一个打印预览的对话框。
#include <QPrintPreviewDialog>
继承QDialog
公共函数:

QPrintPreviewDialog  ( QPrinter * printer, QWidget *parent = 0, Qt::WindowFlags flags = 0 )

 

QPrintPreviewDialog  ( QWidget * parent = 0, Qt::WindowFlags flags = 0 )

 

void

open  ( QObject * receiver, const char * member )

QPrinter *

printer  ()

重载公共函数

virtual void

done  ( int result )

virtual void

setVisible  ( bool visible )

8个公共函数继承从QDialog
216个公共函数继承从QWidget
29个公共函数继承从QObject
12个公共函数继承从QPaintDevice
信号

void

paintRequested  ( QPrinter * printer )

3个信号继承从QDialog
1个信号继承从QWidget
1个信号继承从QObject
其他继承的函数

  • 2 properties inherited from QDialog

  • 58 properties inherited from QWidget

  • 1 property inherited from QObject

  • 5 public slots inherited from QDialog

  • 19 public slots inherited from QWidget

  • 1 public slot inherited from QObject

  • 4 static public members inherited from QWidget

  • 5 static public members inherited from QObject

  • 7 protected functions inherited from QDialog

  • 37 protected functions inherited from QWidget

  • 7 protected functions inherited from QObject

  • 1 protected function inherited from QPaintDevice

  • 1 protected slot inherited from QWidget

 

详细描述
使用该类在你存在的应用中,是简单的
1.       创建该类
你能构造一个该类用一个存在的QPrinter对象,或者你能用QPrintPreviewDialog来创建一个为你,这将是系统默认的指针。
2.       连接paintRequested()信号到一个槽
当对话框需要产生一系列预览页时,paintRequested()信号将被发出。你能使用准确的相同的代码为实际的打印就像有预览被产生,包括调用QPrinter::newPage()来开始一个新页。连接一个槽到paintRequested()信号,那里你将画出QPinter对象。
3.       调用exec()
调用 QPrintPreviewDialog::exec() 来显示预览框。

 

成员函数文件

QPrintPreviewDialog::QPrintPreviewDialog ( QPrinter * printer, QWidget * parent= 0, Qt::WindowFlags flags = 0 )

构造一个QPrintPreviewDialogprinter的基础上,用parent作为parent widgetWidget flags将被传到QWidget构造器。

QPrintPreviewDialog::QPrintPreviewDialog ( QWidget * parent = 0,Qt::WindowFlags flags = 0 )

重载函数。这将产生一个内部的QPrinter对象,他将使用系统默认的printer

QPrintPreviewDialog::~QPrintPreviewDialog ()

摧毁一个QPrintPreviewDialog()

void QPrintPreviewDialog::done ( int result )   [virtual]

 

重载从 QDialog::done().

void QPrintPreviewDialog::open ( QObject * receiver, const char * member )

这是一个重载函数。
打开对话框,连接它的结束信号到一个特别的槽,通过receivermember
这个信号将被断开从槽中,当对话框是关闭的

void QPrintPreviewDialog::paintRequested ( QPrinter * printer )   [signal]

这个信号时发出当QPrintPreviewDialog需要被产生一系列预览页时。
这个printer例子是包含要打印的每一页。

QPrinter * QPrintPreviewDialog::printer ()

返回一个指针到QPrinter对象,指向目前打开的对话框

void QPrintPreviewDialog::setVisible ( bool visible )   [virtual]

重载从  QWidget::setVisible().

 

 

附上我的一小段函数供大家参考!!!!

 

void MainWindow::on_pushButton_print_clicked()
{
    QPrinter printer(QPrinter::HighResolution);
    QPrintDialog *dlg = new QPrintDialog(&printer,this);
    if(ui->textEdit->textCursor().hasSelection()){
        dlg->addEnabledOption(QAbstractPrintDialog::PrintSelection);
    }
    dlg->setWindowTitle(tr("Print test"));
    if(dlg->exec()==QDialog::Accepted){
        ui->textEdit->print(&printer);
    }
    delete dlg;
}

 

void MainWindow::on_pushButton_printpreview_clicked()
{
    QPrinter printer(QPrinter::HighResolution);
    QPrintPreviewDialog preview(&printer,this);

    connect(&preview, SIGNAL(paintRequested(QPrinter *)),this,SLOT(printPreview(QPrinter *)));
    preview.exec();
}

 

void MainWindow::printPreview(QPrinter *printer)
{
    ui->textEdit->print(printer);
}