hi,
denke mal da thema beschreibt mein problem - fang grad an bisschen wxpython zu testen.
und google + diverse foren konnten nicht wirklich helfen.
so habe leider nur nen java ansatz davon hab ich bischen ahnung ...
und zwar muss es doch was simples geben wie ich nen frame splitte!?
in java wäre es borderlayout "west" und z.b. borderlayout "east" um ein frame 50/50 aufzuteilen.
für jegliche hilfe wäre ich sehr dankbar
mfg
Frame - Split, nur wie?
Das machst du am besten mit Sizern. Schau mal im wxWiki nach. Unter "Getting Started" im Bereich "7.1.1 Laying out Visual Elements" gibt es ein Tutorial.
Hoi
Für diesen Zweck gibt es Sizer. Ich schlage vor, Du schaust Dir einmal die Demo an - dann bist Du schlauer.
Gruß,
Christian
Für diesen Zweck gibt es Sizer. Ich schlage vor, Du schaust Dir einmal die Demo an - dann bist Du schlauer.
Gruß,
Christian
tja hab da wohl was falsch verstanden ...
so vorher ohne sizer hat der texteditor gefuntzt aber jetzt nur tracebacks mit fehlern
kann mir einer auf die sprünge heelfen???
nun noch die fehler ausgabe:
Traceback (most recent call last):
File "test.py", line 88, in ?
app = MyApp(0)
File "/usr/lib/python2.3/site-packages/wx-2.6-gtk2-ansi/wx/_core.py", line 7473, in __init__
self._BootstrapApp()
File "/usr/lib/python2.3/site-packages/wx-2.6-gtk2-ansi/wx/_core.py", line 7125, in _BootstrapApp
return _core_.PyApp__BootstrapApp(*args, **kwargs)
File "test.py", line 83, in OnInit
frame = MyFrame(Null, -1, "wxPython - test")
NameError: global name 'Null' is not defined
sry für den riesen post aber weiss nich wie sonst ...
mfg
so vorher ohne sizer hat der texteditor gefuntzt aber jetzt nur tracebacks mit fehlern
kann mir einer auf die sprünge heelfen???
Code: Alles auswählen
from wxPython.wx import *
ID_OPEN_DAT = 100
ID_SAVE_DAT = 101
ID_INFO = 102
ID_EXIT = 103
#Mainframe
class MyFrame(wxFrame):
def __init__(self, parent, ID, title):
wxFrame.__init__(self, parent, ID, title,
wxDefaultPosition, wxSize(500, 400))
self.CreateStatusBar()
self.SetStatusText("Statusanzeige")
self.editor = wxTextCtrl(self, -1, "", wxTE_MULTILINE);
self.panel = wxPanel(self, -1, "")
self.sizer=wxBoxSizer(wxVERTICAL)
self.sizer.Add(self.editor,0,wxEXPAND)
self.sizer.Add(self.panel,0,wxEXPAND)
menu = wxMenu()
menu.Append(ID_OPEN_DAT, "Datei öffnen", "Öffnet angegebene Datei")
menu.Append(ID_SAVE_DAT, "Datei speichern", "Speichert geöffnete Datei")
menu.Append(ID_INFO, "Info", "Programm - Infos")
menu.AppendSeparator()
menu.Append(ID_EXIT, "Beenden", "Beendet die Anwendung")
menuBar = wxMenuBar()
menuBar.Append(menu, "Menü");
self.SetMenuBar(menuBar)
#Layout sizers
self.SetSizer(self.sizer)
self.SetAutoLayout(1)
self.sizer.Fit(self)
class MyApp(wxApp):
def OnInit(self):
frame = MyFrame(Null, -1, "wxPython - test")
frame.Show(true)
self.SetTopWindow(frame)
return true
app = MyApp(0)
app.MainLoop()
Traceback (most recent call last):
File "test.py", line 88, in ?
app = MyApp(0)
File "/usr/lib/python2.3/site-packages/wx-2.6-gtk2-ansi/wx/_core.py", line 7473, in __init__
self._BootstrapApp()
File "/usr/lib/python2.3/site-packages/wx-2.6-gtk2-ansi/wx/_core.py", line 7125, in _BootstrapApp
return _core_.PyApp__BootstrapApp(*args, **kwargs)
File "test.py", line 83, in OnInit
frame = MyFrame(Null, -1, "wxPython - test")
NameError: global name 'Null' is not defined
sry für den riesen post aber weiss nich wie sonst ...
mfg
Is eh kein so Riesenpost
Zuerst: welche wxPython Version hast du?
Seit 2.5 sollte man nur mehr den "neuen" Namespace verwenden.
"Null" gibt es nicht mehr; stattdessen None.
Habe dein Programm leicht abgeändert:
Zuerst: welche wxPython Version hast du?
Seit 2.5 sollte man nur mehr den "neuen" Namespace verwenden.
"Null" gibt es nicht mehr; stattdessen None.
Habe dein Programm leicht abgeändert:
Code: Alles auswählen
import wx
# -*- encoding: latin-1 -*-
ID_OPEN_DAT = 100
ID_SAVE_DAT = 101
ID_INFO = 102
ID_EXIT = 103
#Mainframe
class MyFrame(wx.Frame):
def __init__(self, parent, ID, title):
wx.Frame.__init__(self, parent, ID, title,
wx.DefaultPosition, wx.Size(500, 400))
self.CreateStatusBar()
self.SetStatusText("Statusanzeige")
self.editor = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE);
self.panel = wx.Panel(self, -1)
self.sizer=wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.editor,0,wx.EXPAND)
self.sizer.Add(self.panel,0,wx.EXPAND)
menu = wx.Menu()
menu.Append(ID_OPEN_DAT, "Datei öffnen", "Öffnet angegebene Datei")
menu.Append(ID_SAVE_DAT, "Datei speichern", "Speichert geöffnete Datei")
menu.Append(ID_INFO, "Info", "Programm - Infos")
menu.AppendSeparator()
menu.Append(ID_EXIT, "Beenden", "Beendet die Anwendung")
menuBar = wx.MenuBar()
menuBar.Append(menu, "Menü");
self.SetMenuBar(menuBar)
#Layout sizers
self.SetSizer(self.sizer)
self.SetAutoLayout(1)
self.sizer.Fit(self)
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, "wxPython - test")
frame.Show(True)
self.SetTopWindow(frame)
return True
app = MyApp(0)
app.MainLoop()
hi, erstmal mal many thx too u
so da NULL bei mir gefuntzt hat und latin 1 encoding nicht unterstützt wird bin ich wahrscheinlich nicht uptodate. leider liegt python aufm server und ich hab keine su rechte um die version zu checken ... also werd ich mich mal an einen der admins wenden und ggf. wxpy updaten ...
trotzdem vielen dank
p.s.: mein code war auch irgendwie immer ohne wx.blabla (wxblabla) ... ist schon nervig sich 3 tage mit zeug rumzuschlagen ohne wirklich ergebnisse zu erzielen, vllt bleib ich doch bei java auch wenn das hier in der firma keiner hernimmt
so da NULL bei mir gefuntzt hat und latin 1 encoding nicht unterstützt wird bin ich wahrscheinlich nicht uptodate. leider liegt python aufm server und ich hab keine su rechte um die version zu checken ... also werd ich mich mal an einen der admins wenden und ggf. wxpy updaten ...
trotzdem vielen dank
p.s.: mein code war auch irgendwie immer ohne wx.blabla (wxblabla) ... ist schon nervig sich 3 tage mit zeug rumzuschlagen ohne wirklich ergebnisse zu erzielen, vllt bleib ich doch bei java auch wenn das hier in der firma keiner hernimmt