Unsichtbarer Fehler

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

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

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

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]#!/usr/bin/env python
import this[/code]
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

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

Das kam mir doch gleich Javanisch vor ;)

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

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

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]#!/usr/bin/env python
import this[/code]
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

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
Antworten