PySide 1.0.8
Пытаюсь прикрутить печатную форму с предпросмотром к гуевине на сабже. Имеется такой код:
class Main(QApplication):
...
def measureMasterFinished(self):
self.resultswindow = self.loadWindow("result-frame")
self.resultswindow.show()
self.connect(
self.resultswindow.printButton,
SIGNAL("pressed()"),
self,
SLOT("resultPrintDialog()")
)
...
def resultPrintDialog(self):
dialog = QPrintPreviewDialog(parent = self.resultswindow.resultPrintForm)
dialog.connect(
SIGNAL("paintRequested(QPrinter(object))"),
self.resultswindow.resultPrintForm.print_
)
dialog.exec_()
...
result-frame - это QFrame с плашкой QTextBrowser resultPrintForm и кнопками closeButton и printButton
loadWindow соответственно, подгружает .ui, сгенеренный дизайнером.
Необходимо по нажатию printButton показать QPrintPreviewDialog из которого уже будет команда на печать. Фигня в том, что без подключения paintRequested диалог вообще пустой. В нем только верхний тулбар есть. А подключить этот сигнал оно не дает. То сигнатура не нравится, то, как в примере выше: You can't add dynamic slots on an object originated from C++. New-style signal-slot connection из документации работают точно так же: не позволяет подключать динамические слоты:
You can't add dynamic slots on an object originated from C++.
Traceback (most recent call last):
File "/home/u/workspace/p/src/app/main.py", line 93, in resultPrintDialog
dialog.paintRequested.connect(self.resultswindow.resultPrintForm.print_)
RuntimeError: Fail to connect signal paintRequested(QPrinter*).
При этом сигнал-слот без аргументов нормально работают.
Есть у кого вообще рабочий пример с печатью?