wx.grid zeigt "0" nicht an ?!

Plattformunabhängige GUIs mit wxWidgets.
Antworten
capsule5
User
Beiträge: 28
Registriert: Sonntag 10. Dezember 2006, 18:49

Hallo zusammen,

in diesem Beispiel will ich in einem Grid nur die Eingabe von float-Zahlen erlauben. Leider wird dann die Eingabe von 0 in ein Feld nicht übernommen. Die 0 wird einfach "verschluckt"!

Code: Alles auswählen

import wx
import wx.grid


class MyFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, -1, title="Grid Sample")
        panel = wx.Panel(self, -1)
        grid = wx.grid.Grid(panel, -1)
        grid.CreateGrid(4, 2)
        grid.SetSize((200, 200))
        grid.SetDefaultEditor(wx.grid.GridCellFloatEditor())


if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = MyFrame()
    frame.Show(True)
    app.MainLoop()
Ohne "SetDefaultEditor(wx.grid.GridCellFloatEditor())" gibt es das Problem nicht. Leider können dann aber beliebige character eingegeben werden. Hat jemand einen Lösungsvorschlag?

WinXP, Python 2.5.2, wxPython 2.8.7.1

Gruß,
Christoph
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

GridCellNumberEditor scheint das zu tun, was du willst. Floats "brauchen" ja keine führende Null, da man oft .123 etc. schreibt.
capsule5
User
Beiträge: 28
Registriert: Sonntag 10. Dezember 2006, 18:49

GridCellNumberEditor scheint das zu tun, was du willst. Floats "brauchen" ja keine führende Null, da man oft .123 etc. schreibt.
ok, werde ich heute abend probieren, danke!
capsule5
User
Beiträge: 28
Registriert: Sonntag 10. Dezember 2006, 18:49

GridCellNumberEditor scheint das zu tun, was du willst. Floats "brauchen" ja keine führende Null, da man oft .123 etc. schreibt.
... geht leider auch nicht. Eine "0" verschwindet auch hier. :(

Christoph
capsule5
User
Beiträge: 28
Registriert: Sonntag 10. Dezember 2006, 18:49

noch mystischer:

wenn ich in eine leere Zelle eine "0" eingebe, verschwindet die "0" wieder.
Gebe ich aber erst eine andere Zahl ein und überschreibe diese dann mit "0", so bleibt die "0" stehen! :shock:

wer klärt das auf??
Antworten