ich hab schon hier im Forum und bei Google gesucht, aber nichts gefunden. Ich bin mir nicht sicher, ob ich etwas falsch mache, oder ob der QPrintDialog (PySide 1.1.0) in Linux (Fedora 19) einfach eine Macke hat. Konkrett sind mir zwei Dinge aufgefallen:
1. Wenn ich versuche die Options zu setzen, dann hat das scheinbar keinerlei Einfluss. Weil einfach alles, immer aktiv bleibt.
2. Nach dem Akzeptieren des Dialogs (als "Drucken" wird gedrückt, sollte der QPrinter ja eigentlich auf die richtigen Einstellungen gesetzt werden, was aber auch nicht passiert.
Anbei noch ein Minimal-Beispiel:
Code: Alles auswählen
#/usr/bin/env python
#! -*- coding: utf-8 -*-
import sys
from PySide import QtGui
app = QtGui.QApplication(sys.argv)
pDialog = QtGui.QPrintDialog(parent=None)
# Werden einfach trotzdem angezeigt
pDialog.setOption(QtGui.QAbstractPrintDialog.PrintToFile, False)
pDialog.setOption(QtGui.QAbstractPrintDialog.PrintSelection, False)
pDialog.setOption(QtGui.QAbstractPrintDialog.PrintCollateCopies, False)
if pDialog.exec_() == QtGui.QDialog.Accepted:
p = pDialog.printer()
# Einstellungen wurden nicht übernommen
print p
print p.paperSize()
print p.orientation()
print p.printRange()
print p.colorMode()
app.exec_(sys.exit())
Ich habe das Ganze jetzt noch unter Ubuntu 12.10 (ebenfalls PySide 1.1.0) getestet und es tritt der selbe Fehler auf. In Windows funktioniert der Dialog (ist aber scheinbar ein Windows eigener Dialog). Nutzt man PyQt4 mit obrigem Code läuft alles wunderbar. Folglich nehme ich an, dass es sich um einen Bug handelt, diesen habe ich im Qt Bugtracker auch berichtet: https://bugreports.qt-project.org/browse/PYSIDE-196
Erfeulich wäre es, wenn jemand bereits einen eigenen PrintDialog geschrieben hat, dann würde ich gern den entsprechenden Code verwenden.
Vielen Dank. AlphaX2