Menüleiste in Fenster platzieren, funktioniert nicht

Plattformunabhängige GUIs mit wxWidgets.
ntrunk
User
Beiträge: 83
Registriert: Sonntag 7. September 2008, 23:09
Wohnort: Buchen (Odenwald)

@pe: dein letztes Code-Beispiel scheint in Ordnung zu sein, zumindest funktioniert es bei mir (mit copy&paste übernommen) anstandslos.

Evtl. ist deine wx-Installation defekt. Leider k.A. wie du das sicher feststellen kannst und ob oder wie du das in diesem Fall ohne De- und anschl. Neuinstallation repariert bekommst.

Hast du das Beispiel von Francesco mal ausgeführt oder den Vorschlag von Rebecca ausprobiert? Welche Ergebnisse bekommst du dann?
pe
User
Beiträge: 44
Registriert: Dienstag 2. Februar 2010, 18:33

ntrunk hat geschrieben:@pe: dein letztes Code-Beispiel scheint in Ordnung zu sein, zumindest funktioniert es bei mir (mit copy&paste übernommen) anstandslos.
Also bei dir erscheint "File" und "Edit" oben in der Menüleiste?
Ich bedanke mich für Eure Zeit und Aufmerksamkeit.
BlackJack

@pe: Wie führst Du das Programm eigentlich aus? Aus irgendeiner IDE?
pe
User
Beiträge: 44
Registriert: Dienstag 2. Februar 2010, 18:33

BlackJack hat geschrieben:@pe: Wie führst Du das Programm eigentlich aus? Aus irgendeiner IDE?
Ja, aus Geany heraus. Wenn ich es aber mit Python allein aufrufe (python mein-programm.py), komme ich zum selben Ergebnis.
Ich bedanke mich für Eure Zeit und Aufmerksamkeit.
pe
User
Beiträge: 44
Registriert: Dienstag 2. Februar 2010, 18:33

Francesco hat geschrieben: Was bekommst du als Ausgabe bei:
http://pastebin.com/ZPSUD3Az
Hier bekomme ich auch nur das Fenster ohne Menüleiste. Das Minimal-Beispiel funktioniert, jedoch hätte ich davor gerne das Eingabefeld.
Ich bedanke mich für Eure Zeit und Aufmerksamkeit.
ntrunk
User
Beiträge: 83
Registriert: Sonntag 7. September 2008, 23:09
Wohnort: Buchen (Odenwald)

pe hat geschrieben:Also bei dir erscheint "File" und "Edit" oben in der Menüleiste
Ja, das tun sie beide.

Nurmal als Vermutung in den Raum geworfen: vielleicht ist das Problem darin begründet, dass der Dialog im Konstruktor aufgerufen wird. Versuch mal als Workaround den Dialog nach Beendigung des Frame-Konstruktors in einer separaten Methode aufzurufen, ungefähr so:

Code: Alles auswählen

# -*- coding: iso-8859-1 -*-
import wx

class wxpythoninfo(wx.Frame):

  def __init__(self, parent, id):
    wx.Frame.__init__(self, parent, id, 'Window title', size=(300,200))
    panel = wx.Panel(self)

  def create_menus(self):

    # var defining test
    test = 'testtext'

    # Eingabedialog
    box = wx.TextEntryDialog(self, "Text over input field", "Windowtitle", test)
    if box.ShowModal() == wx.ID_OK:
      menubar = wx.MenuBar()
      first   = wx.Menu()
      second  = wx.Menu()
      menubar.Append(first,"File")
      menubar.Append(second,"Edit")
      first.Append(wx.NewId(),"New window","That's a new window." )
      first.Append(wx.NewId(),"Open","Opens a new window." )
      self.SetMenuBar(menubar)

if __name__=='__main__':
  #inits the program
  app=wx.App()

  #shows the program
  frame = wxpythoninfo(parent=None, id=-1)
  frame.create_menus()
  frame.Show()
  app.MainLoop()
Das ist allerdings zugegebenermaßen ein blindes Stochern in einer trüben Brühe... :?
pe
User
Beiträge: 44
Registriert: Dienstag 2. Februar 2010, 18:33

ntrunk hat geschrieben: Nurmal als Vermutung in den Raum geworfen: vielleicht ist das Problem darin begründet, dass der Dialog im Konstruktor aufgerufen wird.
Hängt leider nicht daran..
Ich bedanke mich für Eure Zeit und Aufmerksamkeit.
pe
User
Beiträge: 44
Registriert: Dienstag 2. Februar 2010, 18:33

Habe den Fehler gefunden. Ich hatte ein Gnome-Plugin installiert, welches sich Globalmenu nennt. Es verschiebt Menüleisten ins Gnome-Panel. Zwar war das Paket ungenutzt, aber installiert. Als ich es deinstalliert habe, sah ich die Menüleiste. Habe ich übrigens über den #wxpython IRC Channel erfahren. Dank an RobinD.
Ich bedanke mich für Eure Zeit und Aufmerksamkeit.
Antworten