I am trying to build a PyQt4 application that uses veusz, but I am having
difficulties.  I am a relative newbie to PyQt4 and Veusz, but here is a Hello
World that shows what I am trying to do.

#!/usr/bin/env python

# A hello world example of using veusz in a PyQt4 app.

import numpy
import sys

from PyQt4 import QtCore, QtGui
app = QtGui.QApplication(sys.argv)


import veusz.windows.plotwindow
import veusz.document as document
from veusz.document.commandinterface import CommandInterface

class HelloMainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.statusBar().showMessage('Hello Veuz World!')

        menubar = self.menuBar()
        self.file_menu = menubar.addMenu('&File')

        self.exit_action = QtGui.QAction(QtGui.QIcon('icons/exit.png'), '&Quit',
self)
        self.exit_action.setShortcut('Ctrl+Q')
        self.exit_action.setStatusTip('Exit application')
        self.connect(self.exit_action, QtCore.SIGNAL('triggered()'),
QtCore.SLOT('close()'))
        self.file_menu.addAction(self.exit_action)

        self.document = document.Document()
        self.plot = veusz.windows.plotwindow.PlotWindow(self.document, self)
        self.setCentralWidget(self.plot)
        self.interface = CommandInterface(self.document)
        i = self.interface
        i.To(i.Add('page'))
        i.To(i.Add('graph'))
        i.Add('xy', marker='tiehorz', MarkerFill__color='green')

# this stops intelligent axis extending
        i.Set('x/autoExtend', False)
        i.Set('x/autoExtendZero', False)

        x = numpy.arange(0, 7., 0.05)
        y = numpy.sin(x)
        i.SetData('x', x)
        i.SetData('y', y)
        
        self.show()

main_window = HelloMainWindow()
sys.exit(app.exec_())


But, I get the following error
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/veusz/windows/plotwindow.py", line 666,
in slotTimeout
    dpi = self.widgetdpi )
  File "/usr/lib/python2.6/site-packages/veusz/document/doc.py", line 311, in
paintTo
    self.basewidget.draw(painter, page)
  File "/usr/lib/python2.6/site-packages/veusz/widgets/root.py", line 83, in 
draw
    page.draw( posn, painter )
  File "/usr/lib/python2.6/site-packages/veusz/widgets/page.py", line 220, in 
draw
    parentposn)
  File "/usr/lib/python2.6/site-packages/veusz/widgets/widget.py", line 296, in 
draw
    i.draw(bounds, painter, outerbounds=outerbounds)
  File "/usr/lib/python2.6/site-packages/veusz/widgets/graph.py", line 162, in 
draw
    i.draw(bounds, painter, outerbounds=outerbounds)
  File "/usr/lib/python2.6/site-packages/veusz/widgets/axis.py", line 878, in 
draw
    self._drawTickLabels(painter, coordticks, sign, texttorender)
  File "/usr/lib/python2.6/site-packages/veusz/widgets/axis.py", line 614, in
_drawTickLabels
    font = s.get('TickLabels').makeQFont(painter)
  File "/usr/lib/python2.6/site-packages/veusz/setting/collections.py", line
229, in makeQFont
    size = self.get('size').convertPts(painter)
  File "/usr/lib/python2.6/site-packages/veusz/setting/setting.py", line 723, in
convertPts
    return self.convert(painter) / painter.veusz_pixperpt
  File "/usr/lib/python2.6/site-packages/veusz/setting/setting.py", line 716, in
convert
    return self.convertDistance(painter, self.val)
  File "/usr/lib/python2.6/site-packages/veusz/setting/setting.py", line 111, 
in get
    return self._val.resolve(self).get()
  File "/usr/lib/python2.6/site-packages/veusz/setting/setting.py", line 111, 
in get
    return self._val.resolve(self).get()
  File "/usr/lib/python2.6/site-packages/veusz/setting/reference.py", line 77,
in resolve
    raise self.ResolveException()
ResolveException


_______________________________________________
Veusz-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/veusz-discuss

Répondre à