Найти - Пользователи
Полная версия: Печать на принтере
Начало » GUI » Печать на принтере
1
Ser5+
Добрый день. Есть вопрос про предварительный просмотр перед печатью. Вопрос такой, как вывести текст в предварительный просмотр, а то там просто пустое окно с кнопками и даже без чистого белого листа?

Использую вот такую конструкцию
 txt = "<b>бла бла бла</b>"
printer = Qt.QPrinter()
document = QtGui.QTextDocument(self)
document.setHtml(txt)
pd = Qt.QPrintPreviewDialog(printer,self)
pd.setWindowTitle("Печать")
 
if pd.exec()== Qt.QDialog.Accepted:
   document.print(printer)
PEHDOM
Ser5+
Вопрос такой, как вывести текст в предварительный просмотр, а то там просто пустое окно с кнопками и даже без чистого белого листа?
ну дык нужно читать документацию
https://doc.qt.io/qt-5/qprintpreviewdialog.html
1. Create the QPrintPreviewDialog
2. Connect the paintRequested() signal to a slot.
тоесть после
pd = Qt.QPrintPreviewDialog(printer,self)
pd.setWindowTitle(“Печать”)
нужно еще
pd.paintRequested.connect(self.print_preview_render)
если бы вы печетели из QTextEdit-ра то достаточно было бы сделать вот так
pd.paintRequested.connect(self.QTextEdit_instance.print_), а QTextDocument нужно ручками рендерить например через qpainter или QChart
примерно так https://stackoverflow.com/questions/8193920/how-to-use-qprinter-and-qprintpreviewdialog

Ser5+
PEHDOM Понял. Испробую,как нибудь,пробовал через painter,но почему то он сразу начинает печатать,не спрашивая,поэтому избавился от paintera хотя скорее всего этот сигнал .paintRequested.connect(self.QTextEdit_instance.print_) надо поместить в условие Qt.QDialog.Accepted: чтобы не печаталось сразу.
PEHDOM
Ser5+
хотя скорее всего этот сигнал .paintRequested.connect(self.QTextEdit_instance.print_) надо поместить в условие Qt.QDialog.Accepted: чтобы не печаталось сразу.
нет не надо, если все правильно сделать, то оно должно вывести окно с превью, и в этом окне отрисовать то что вы painter “нарисуете”. Если у вас оно сраз на перчать шл, знач гдето чтто не так.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB