Я пытаюсь использовать следующий скрипт для печати документов.Проблема в том, что ничего не происходит.Печатается слово «выполнить», и когда я нажимаю на кнопку «ОТМЕНА» в диалоговом окне, отклик получается ожидаемым.Кнопки PREVIEW и PRINT вызывают выход из диалогового окна, но результат не печатается.Три метода обратного вызова заглушаются при каждой печати своего имени, ни один из которых не отображается.
Я использую Ubuntu 18.04 с python 3.6.7.
import gi
gi.require_version ('Gtk', '3.0')
from gi.repository import Gtk, GLib, Gdk
def PrintManager (self):
ps = Gtk.PrintSettings.new ()
po = Gtk.PrintOperation.new ()
po.set_print_settings (ps)
po.set_n_pages (1)
po.connect ("begin_print", self.BeginPrint, self.PrintList)
po.connect ("draw_page", self.DrawPage, self.PrintList)
po.connect ("end_print", self.EndPrint, self.PrintList)
print ("execute") #x
result = po.run (Gtk.PrintOperationAction.PRINT_DIALOG, const.internal["parent"])
print (result) #x
if result == Gtk.PrintOperationResult.APPLY:
ps = op.get_print_settings ()
elif result == Gtk.PrintOperationResult.ERROR:
dialog = Gtk.MessageDialog.new (Gtk.DialogFlags.DESTROY_WITH_PARENT,
Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE, const.printError)
dialog.run ()
dialog.destroy ()
def BeginPrint (self, po, ctx, data):
print ("{}.BeginPrint ()".format (__name__))
def DrawPage (self, po, ctx, cnt, data):
print ("{}.DrawPage ({})".format (__name__, cnt))
def EndPrint (self, po, ctx, data):
print ("{}.EndPrint ()".format (__name__))