Unsichtbarer Fehler

Plattformunabhängige GUIs mit wxWidgets.
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Unsichtbarer Fehler

Beitragvon mitsuhiko » Donnerstag 11. November 2004, 18:36

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.
TUFKAB – the user formerly known as blackbird
Christopy
User
Beiträge: 131
Registriert: Montag 15. Dezember 2003, 22:39

Beitragvon Christopy » Donnerstag 11. November 2004, 19:40

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).
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 11. November 2004, 20:19

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

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 11. November 2004, 20:39

Da hat sich wohl die Java Seite in mir durchgesetzt. :D
TUFKAB – the user formerly known as blackbird
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 11. November 2004, 20:57

Das kam mir doch gleich Javanisch vor ;)

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 11. November 2004, 21:13

Back2Topic: Kann ich eigentlich für diesen Bereich die Fehlerausgabe einfach ausschalten?
TUFKAB – the user formerly known as blackbird
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 11. November 2004, 21:20

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

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 11. November 2004, 21:34

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.
TUFKAB – the user formerly known as blackbird

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]