Seite 1 von 1

Unsichtbarer Fehler

Verfasst: Donnerstag 11. November 2004, 18:36
von mitsuhiko
Ich versuche so einen Ausdruck einer Tabelle zu erzeugen:

Code: Alles auswählen

from wxPython.lib.printout import PrintTable

def print_items(data, header, footer):
    prt = PrintTable(None)
    prt.label = ["Produkt", "Hersteller", "Einkaufspreis", "Verkaufspreis", "lagernd"]
    prt.set_column = []
    container = []
    for s in data:
        lst = []
        lst.append((str)(s["name"]))
        lst.append((str)(s["manufacturer"]))
        lst.append((str)(s["purchase_price"]))
        lst.append((str)(s["sell_price"]))
        lst.append((str)(s["storaged"]))
        container.append(lst)
    prt.data = container
    prt.SetFooter(footer)
    prt.SetHeader(header)
    prt.Preview()
Aufgerufen wird das mit:

Code: Alles auswählen

fields = self.parent.query_getItemList()
print_items(fields, "Lagerstand", "")
Der query Befehl gibt einfach die einzelnen Felder der Itemdatenbank aus.

Die Tabelle zeigt er mir auch an, aber er schreibt folgenden Fehler:

Code: Alles auswählen

C:\PYTHON23\lib\site-packages\wxPython\gdi.py:628: DeprecationWarning: integer argument expected, got float
  val = gdic.wxDC_DrawRectangle(self, *_args, **_kwargs)
C:\PYTHON23\lib\site-packages\wxPython\gdi.py:643: DeprecationWarning: integer argument expected, got float
  val = gdic.wxDC_DrawText(self, *_args, **_kwargs)
C:\PYTHON23\lib\site-packages\wxPython\gdi.py:616: DeprecationWarning: integer argument expected, got float
  val = gdic.wxDC_DrawLine(self, *_args, **_kwargs)
Was bedeutet das und wie werde ich das los.

Verfasst: Donnerstag 11. November 2004, 19:40
von Christopy
Eigentlich sagt eine Deprecation Warnung, dass Du Funktionen verwendest, die zukünftig nicht mehr unterstützt werden.

In diesem speziellen Fall werden Fließkommazahlen als Zeichenkoordinaten verwendet, was ja nicht wirklich sinnvoll ist (und darum vermutlich auch in Zukunft nicht mehr unterstützt wird).

Verfasst: Donnerstag 11. November 2004, 20:19
von Dookie
Hi,

was soll denn lst.append((str)(s["name"])) werden?
wenn du den inhalt von s["name"] und Consorten in einen String wandeln willst,
geht das so: lst.append(str(s["name"]))


Gruß

Dookie

Verfasst: Donnerstag 11. November 2004, 20:39
von mitsuhiko
Da hat sich wohl die Java Seite in mir durchgesetzt. :D

Verfasst: Donnerstag 11. November 2004, 20:57
von Dookie
Das kam mir doch gleich Javanisch vor ;)

Dookie

Verfasst: Donnerstag 11. November 2004, 21:13
von mitsuhiko
Back2Topic: Kann ich eigentlich für diesen Bereich die Fehlerausgabe einfach ausschalten?

Verfasst: Donnerstag 11. November 2004, 21:20
von Dookie
jo kannst du mit try:...except, würde ich aber wegen der Deprication-Warnings nicht machen, in einer Zukünftigen Version von wx kommt da dann statt einer Warnung ein echter Fehler und dein Programm wird sich dann auch nicht mehr ordnungsgemäss verhalten und du suchst dir einen Wolf. Du kannst die Meldungen aber beim fertigen Programm, durch umleiten von sys.stderr, in eine Datei umleiten.


Gruß

Dookie

Verfasst: Donnerstag 11. November 2004, 21:34
von mitsuhiko
Das try ... except funzt nicht. Deswegen ja meine Frage.
Aber ich glaube das Prob liegt bei meiner wxPython Version. Ich nutze noch 2.4.
Werd ich mal austauschen und wieder testen.