Refresh, ernuern des Mainframes?
Verfasst: Mittwoch 5. August 2009, 11:36
Hallo Community ich bins mal wieder!
Also ich habe einen Mainframe: http://www.imgupload.org/images/912_omfgwx.jpg
Den ich auch editieren kann mit doopelklick auf eine Zelle! (von der wxPythondemo abgeschaut), ich hatte vorher das selbe Layout nur ohne Doppelklick (damits nicht heist ich kopier nur alles)
wenn ich jetzt auf Neue Kontaktliste klicke: http://www.imgupload.org/images/989_omfgwxnk.jpg dann soll der komplette inhalt der Zellen gelöscht werden, hier mal mein Code!
sry dass die bilder nicht gehen
ich hoffe ihr könnt mir helfen
mfg
Also ich habe einen Mainframe: http://www.imgupload.org/images/912_omfgwx.jpg
Den ich auch editieren kann mit doopelklick auf eine Zelle! (von der wxPythondemo abgeschaut), ich hatte vorher das selbe Layout nur ohne Doppelklick (damits nicht heist ich kopier nur alles)
wenn ich jetzt auf Neue Kontaktliste klicke: http://www.imgupload.org/images/989_omfgwxnk.jpg dann soll der komplette inhalt der Zellen gelöscht werden, hier mal mein Code!
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
# adressbuch-gui.py
import wx
import wx.lib.mixins.listctrl
import webbrowser
import sys
import os
### Variabeln deklarieren
version = '0.09'
wildcard = "OmegaAdressbuch Datein (*.oad)|*.oad" \
temp = {
0 : ("test", "test test test", "test"),
1 : ("test", "test", "test"),
2 : ("test", "test", "test"),
3 : ("test", "test", "test"),
4 : ("test", "äüößÖÄÜ?ß", "test"),
5 : ("x", "x", "x")
}
# AdressbuchMainFenster
class Adressen(wx.ListCtrl, wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin, wx.lib.mixins.listctrl.TextEditMixin):
def __init__(self, parent, ID, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0):
wx.ListCtrl.__init__(self, parent, ID, pos, size, style)
wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin.__init__(self)
self.Columns()
wx.lib.mixins.listctrl.TextEditMixin.__init__(self)
def Columns(self):
self.InsertColumn(0, 'Name')
self.InsertColumn(1, 'Adresse')
self.InsertColumn(2, 'E-Mail')
items = temp.items()
for key, data in items:
index = self.InsertStringItem(sys.maxint, data[0])
self.SetStringItem(index, 1, data[1])
self.SetStringItem(index, 2, data[2])
self.SetItemData(index, key)
self.SetColumnWidth(0, 138)
self.SetColumnWidth(1, 185)
self.SetColumnWidth(2, 165)
self.currentItem = 0
# Klasse für das Hauptfenster
class mainfenster (wx.Frame):
def __init__ (self, parent, id, title,):
wx.Frame.__init__(self, parent, id, title, size=(500, 300))
# Menübar erstellen
menubar = wx.MenuBar()
######### 1. Menü erstellen
menu1 = wx.Menu()
# Untermenüs für 1. Menü erstellen
neu = wx.MenuItem(menu1, 11, 'Neue Kontaktliste\tCtrl+N')
neu.SetBitmap(wx.Bitmap('icons/new.png'))
laden = wx.MenuItem(menu1, 12, 'Kontaktliste laden\tCtrl+L')
laden.SetBitmap(wx.Bitmap('icons/open.png'))
speichern = wx.MenuItem(menu1, 13, 'Kontaktliste speichern\tCtrl+S')
speichern.SetBitmap(wx.Bitmap('icons/save.png'))
beenden = wx.MenuItem(menu1, 14, 'Beenden\tCtrl+Q') # beenden id = 3
beenden.SetBitmap(wx.Bitmap('icons/exit.png'))
# Untermenüs zum 1. Menü hinzufügen
menu1.AppendItem(neu)
menu1.AppendItem(laden)
menu1.AppendItem(speichern)
menu1.AppendItem(beenden)
######### 2. Menü erstellen
menu2 = wx.Menu()
# Untermenüs für 2. Menü erstellen
kontakth = wx.MenuItem(menu2, 21, 'Kontak hinzufügen\tCtrl+H') # Neuer Kontakt id = 1
kontakth.SetBitmap(wx.Bitmap('icons/add.png'))
kontaktd = wx.MenuItem(menu2, 22, 'Kontakt löschen\tCtrl+D') # Kontaktlöschen id = 2
kontaktd.SetBitmap(wx.Bitmap('icons/del.png'))
kontakts = wx.MenuItem(menu2, 23, 'Kontakt suchen\tCtrl+F')
kontakts.SetBitmap(wx.Bitmap('icons/search.png'))
# Untermenüs zum 2. Menü hinzufügen
menu2.AppendItem(kontakth)
menu2.AppendItem(kontaktd)
menu2.AppendItem(kontakts)
######## 3. Menü erstellen
menu3 = wx.Menu()
# Untermenüs für 3. Menü erstellen
about = wx.MenuItem(menu3, 31, 'About')
about.SetBitmap(wx.Bitmap('icons/about.png'))
internet = wx.MenuItem(menu3, 32, 'Omega im Internet!')
internet.SetBitmap(wx.Bitmap('icons/web.png'))
# Untermenüs zum 3. Menü Hinzufügen
menu3.AppendItem(about)
menu3.AppendItem(internet)
######### Den Untermenüs per ID eine Funktion
# 1. Menü
self.Bind(wx.EVT_MENU, self.NewKontaktliste, id=11)
self.Bind(wx.EVT_MENU, self.LoadKontaktliste, id=12)
self.Bind(wx.EVT_MENU, self.SaveKontaktliste, id=13)
self.Bind(wx.EVT_MENU, self.OnQuit, id=14)
# 2. Menü
self.Bind(wx.EVT_MENU, self.NewKontakt, id=21)
self.Bind(wx.EVT_MENU, self.DeleteKontakt, id=22)
self.Bind(wx.EVT_MENU, self.SearchKontakt, id=23)
# 3. Menü
self.Bind(wx.EVT_MENU, self.About, id=31)
self.Bind(wx.EVT_MENU, self.Internet, id=32)
######### Menüs zur Menübar hinzufügen und erstellen
menubar.Append(menu1, '&Hauptmenü')
menubar.Append(menu2, '&Bearbeiten')
menubar.Append(menu3, '&About')
self.SetMenuBar(menubar)
###################################### ENDE MENÜS
######### Adressbuch / Panel
tID = wx.NewId()
sizer = wx.BoxSizer(wx.VERTICAL)
self.list = Adressen(self, tID, style=wx.LC_REPORT | wx.LC_SORT_ASCENDING)
sizer.Add(self.list, 1, wx.EXPAND)
self.SetSizer(sizer)
self.SetAutoLayout(True)
###################################### ENDE PANEL
# Alles ausgeben und Einstellungen die mit dem Hauptframe zu tun haben!
self.Centre()
self.Show(True)
##### Menü-Aktionen ausführen!!
# 1. Menü
def NewKontaktliste(self, event):
temp = {}
self.Refresh()
def LoadKontaktliste(self, event):
lkl = wx.FileDialog(self, message='Kontaktliste auswählen', defaultDir=os.getcwd(), defaultFile="", wildcard=wildcard, style=wx.OPEN | wx.CHANGE_DIR)
if lkl.ShowModal() == wx.ID_OK:
paths = lkl.GetPaths()
print paths
lkl.Destroy()
def SaveKontaktliste(self, event):
nkl = wx.FileDialog(self, message='Kontaktliste speichern:', defaultDir=os.getcwd(), defaultFile="", wildcard=wildcard, style=wx.SAVE)
nkl.SetFilterIndex(2)
if nkl.ShowModal() == wx.ID_OK:
path = nkl.GetPath()
nklfile = file(path, 'w')
nklfile.write('test')
nkl.Destroy()
def OnQuit(self, event):
self.Close()
# 2. Menü
def NewKontakt(self, event):
pass
def DeleteKontakt(self, event):
pass
def SearchKontakt(self, event):
pass
# 3. Menü
def About(self, event):
pass
adressbuch = wx.App(redirect=False)
wx.SetDefaultPyEncoding('utf-8')
mainfenster(None, -1, 'Ωmega Adressbuch Pre ' + version)
adressbuch.MainLoop()
ich hoffe ihr könnt mir helfen
mfg