Drucken mit Qt

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
egge
User
Beiträge: 5
Registriert: Mittwoch 23. Juli 2003, 15:02

Drucken mit Qt

Beitragvon egge » Freitag 16. April 2004, 16:24

Hallo erst einmal!

Ich hab da folgendes Problem und würde micht sehr freuen, wenn mir jemand weiter helfen könnte! Bin schon am verzweifeln! :cry:

Problem:
Ich hab eine Oberfläche geschaffen, wo man soviele Vierecke erstellen kann, wie man möchte. Diese Vierecke kann man auf dieser Oberfläche hin und her bewegen. Später werden diese Vierecke, je nachdem wie der Benutzer es will, mit Linien verbunden (geht hier noch nicht). Diese Linien werden QCanvasLine-Objekte sein (deshalb der QCanvasView).
Ich möchte jetzt eine Funktion einbauen, wo ich diese Vierecke bzw. später auch die Verbindungen dazu, ausdrucken kann. Leider hab ich es bis jetzt nur für die Linien bzw QCanvas-Objekte geschafft, die Vierecke werden überhaupt nicht gedruckt.
Wer kann mir da weiter helfen??? Aus der Dokumentation werde ich nicht schlau :(

Code:

Code: Alles auswählen

import sys
from qt import *
from qtcanvas import *

class MainWindow (QMainWindow):
   def __init__ (self):
      QMainWindow.__init__ (self)
      self.resize (1024, 768)
      self.canvas = QCanvas (4000, 4000)
      self.canvas.setBackgroundColor (QColor (Qt.blue))
      self.canvas.setAdvancePeriod (30)

      self.editor = Editor (self.canvas, self)
      self.editor.resizeContents (4000, 4000)
      self.workspace = self.editor.viewport ()
      self.setCentralWidget (self.editor)

      self.file = QPopupMenu (self)
      self.menuBar().insertItem ('Datei', self.file)
      self.file.insertItem (   'Drucken', self.printing)
   self.file.insertItem('Beenden',qApp,SLOT('closeAllWindows ()'))

      self.widget = QPopupMenu (self)
      self.menuBar().insertItem ('Glyphen', self.widget)
      self.widget.insertItem ('Glyph erstellen', self.makeWidget)

   def printing (self):
      pass

   def makeWidget (self):
      self.glyph = Glyph (self.workspace, self)
      self.glyph.setGeometry (QRect (0, 0, 100, 100)
      self.editor.addChild (self.glyph)
      self.glyph.show ()

class Glyph (QFrame):
   def __init__ (self, workspace, mainWindow):
      QFrame.__init__ (self, workspace)
      self.setFrameShape (QFrame.StyledPanel)
      self.setFrameShadow (QFrame.Raised)

   def mousePressEvent (self, ev):
      if ev.button () == Qt.RightButton:
         return
      self.xold = ev.globalX (9
      self.yold = ev.globalY ()

   def mouseMoveEvent (self, ev):
      if ev.state () == Qt.RightButton:
         retrurn
      dx = ev.globalX () - self.xold
      dy = ev.globalY () - self.yold
      x = y = mainWindow.editor.setCoordinates (self.x (), self.y ())
      if x < 0:
         self.move (0, self.y () + dy)
      elif y < 0:
         self.move (self.x () + dx, 0)
      else:
         self.move (self.x () + dx, self.y () + dy)
      self.xold = ev.globalX ()
      self.yold = ev.globalY ()

class Editor (QCanvasView):
   def __init__ (self, canvas, mainWindow):
      QCanvasView.__init__ (self, canvas, mainWindow)

   def setCoordinates (self, x, y):
      newX, newY = self.viewportToContents (int (x), int (y))
      return newX, newY

if __name__ == '__main__':
   app = QApplication (sys.argv)
   mw = MainWindow ()
   app.connect (app, SIGNAL ('lastWindowClosed ()'), app, SLOT ('quit ()'))
   app.exec_loop ()


Schonmal vielen Dank im Voraus für eure Bemühung!

egge
Benutzeravatar
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Beitragvon hans » Freitag 16. April 2004, 21:05

Hmm, habe noch nie was mit QT gedruckt. Hilft dir QPrinter vielleicht weiter?

Hans

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder