• 24.04.2024, 06:00
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Python .....

Freitag, 11. Februar 2005, 17:23

Ich verzweifel hier noch! Wie kann ich ein wxPython-Programm ausführen? Auch über "python wxtest.py" ? Das geht nämlich ned :(

Quellcode

1
2
3
4
5
6
7
8
9
10
11
import wx

class MyApp(wxApp):
    def OnInit(self):
        frame = wxFrame(NULL, -1, "Hello from wxPython")
        frame.Show(true)
        self.SetTopWindow(frame)
        return true

app = MyApp(0)
app.MainLoop()


Das hab ich ma wo abgetippt. Wie bekomm ich das nun zum laufen?

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Re: Python .....

Freitag, 11. Februar 2005, 18:01

gibts keine fehlermeldung?

übrigens: ein wichtiges konstrukt ist das folgende:

Quellcode

1
2
if __name__ == '__main__':
    doSomething()

es wird nur ausgeführt, wenn das script direkt aufgerufen wird. wird es als modul importiert, dann nicht. es bietet sich also an, code zum starten einer einzelanwendung oder testen eines moduls da reinzupacken. für später :)

der bool'sche wahrheitswert heißt übrigens "True" und nicht "true", genau wie auch "False" und "None" nur exakt in dieser schreibweise existieren.

Re: Python .....

Freitag, 11. Februar 2005, 18:41

hmm... schon seltsam, da doch "if" und "while" und co. alle klein geschrieben werden :) *vonC++gewöhntist*

Source:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
import wx

if __name__ == '__main__':
    class MyApp(wxApp):
        def OnInit(self):
            frame = wxFrame(NULL, -1, "Hello from wxPython")
            frame.Show(True)
            self.SetTopWindow(frame)
            return True
    
    app = MyApp(0)
    app.MainLoop()


Fehler:

Zitat

C:\>python wxtest.py
Traceback (most recent call last):
File "wxtest.py", line 4, in ?
class MyApp(wxApp):
NameError: name 'wxApp' is not defined


:(

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Re: Python .....

Freitag, 11. Februar 2005, 19:01

kein wunder, wxApp und wxFrame sind auch nicht im namespace. daher:

Quellcode

1
from wx import *

oder

Quellcode

1
from wx import wxApp, wxFrame


ach, und sorry, dass ich das falsch rübergebracht habe: die klasse sollte natürlich so bleiben und nur die letzten beiden zeilen in das main-test-konstrukt verschoben werden.

Re: Python .....

Freitag, 11. Februar 2005, 19:06

Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
from wx import wxApp, wxFrame

class MyApp(wxApp):
    def OnInit(self):
        frame = wxFrame(NULL, -1, "Hello from wxPython")
        frame.Show(True)
        self.SetTopWindow(frame)
        return True

if __name__ == '__main__':    
    app = MyApp(0)
    app.MainLoop()


Fehler:

Zitat

C:\>python wxtest.py
Traceback (most recent call last):
File "wxtest.py", line 1, in ?
from wx import wxApp, wxFrame
ImportError: cannot import name wxApp


:(

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Re: Python .....

Freitag, 11. Februar 2005, 21:35

hast du wxPython denn richtig installiert? schmeiss mal den interaktiven python-interpreter an und versuch ein "import wx". vielleicht findet der auch das wx-paket, aber die klassen heißen anders oder sind in submodulen. rippchen müsste das wissen.

edit: ich hab mal nachgeschaut. die dinger heißen jetzt "App" und "Frame" ohne "wx".

Re: Python .....

Freitag, 11. Februar 2005, 22:05

Negativ. :(

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Re: Python .....

Freitag, 11. Februar 2005, 23:11

ich habs mal bisschen ausprobiert und folgendes festgestellt: wenn ich es aufm interaktiven interpreter importiere, findet er wx.App. wenn ich eines der samples ausführe, funktioniert es. wenn ich aber das .pyc des samples lösche, dann NICHT MEHR. ebenso wenn ich den sample-code in eine neue datei kopiere. die compiled objects sind also andere als ich sie selbst beim ausführen erzeuge und enthalten referenzen, die so bei mir kaputt sind. irgendwas stimmt mit der ganzen geschichte nicht. da wurden auch ne ganze menge änderungen an den libs durchgeführt, so dass da einiges veraltet sein könnte.

ich warte mal die antwort von rippchen ab, der da ja schon mit experimentiert hat afaik.

warum beschäftigst du dich derweil nicht mit Tkinter? da kann man auch nette sachen mit machen (s. meine website)

Re: Python .....

Samstag, 12. Februar 2005, 01:03

experimentiert is richtig, du glaubst ja gar ned wie interessant das ergebnis werden kann wenn man versucht objekte in ne struktur zu stecken in die se nicht passen und notwendige parameter einfach ma weglässt (mut zur lücke!)... ;D

wie auch immer, das hier wär wohl der interessante teil:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
from wxPython.wx import *

class mainapp(wxApp):
    def OnInit(self):
      frame = mainwindow(NULL, -1, "blablubb")
      frame.Show(true)
      self.SetTopWindow(frame)
      return true            

app = mainapp(0) 
app.MainLoop()


dann noch mainwindow definieren (basis is hier sinnvollerweise wxframe) und scho lüppt das

Re: Python .....

Samstag, 12. Februar 2005, 09:26

neue Fehlermeldung:

Zitat

C:\>python wxtest.py
Traceback (most recent call last):
File "wxtest.py", line 1, in ?
from wxPython.wx import *
File "C:\Python\Python24\Lib\site-packages\wx-2.5.3-msw-unicode\wxPython\__init__.py", line 10, in ?
import _wx
File "C:\Python\Python24\Lib\site-packages\wx-2.5.3-msw-unicode\wxPython\_wx.py", line 3, in ?
from _core import *
File "C:\Python\Python24\Lib\site-packages\wx-2.5.3-msw-unicode\wxPython\_core.py", line 15, in ?
import wx._core
ImportError: No module named _core


MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Re: Python .....

Samstag, 12. Februar 2005, 09:33

und du willst wirklich nicht erstmal (oder längerfristig) Tkinter benutzen? :)

übrigens ist das hier ein exzellentes beispiel dafür, dass ich mich über GPL-Qt und damit PyQt unter windows so freue.

Re: Python .....

Samstag, 12. Februar 2005, 09:42

Da ich mich eh erst einarbeiten muss - kann ich auch Tkinter probieren. Qt4 lässt ja noch auf sich warten ^^ ... Obwohl ich dann gleich mit C++ weitermachen könnte *hrhr*

*TKinter such*

MfG

Edit: Andererseits hab ich die Qt3.3.3Eval schon oben.......hmmm, bräucht ich nur mal Docs dafür.
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Re: Python .....

Samstag, 12. Februar 2005, 09:54

Re: Python .....

Samstag, 12. Februar 2005, 16:51

ok, wenn er das so nicht will dann zurück zum anfang

Quellcode

1
2
3
4
5
6
7
8
9
10
11
import wx

class mainapp(wx.App):
    def OnInit(self):
        frame = wx.Frame(NULL, -1, "blablubb")
        frame.Show(true)
        self.SetTopWindow(frame)
        return true          

app = mainapp(0)     
app.MainLoop()

unterscheidet sich zu deinem code in exakt zwei punkten
nämlich zw wx und app bzw frame ;)


@yogi
ich seh das als durchaus brauchbare alternative zu qt
vor allem weil die progs damit nativ auf fast jedem system laufen und ich mein schönes aqua nicht mit qt konfrontieren will ;)

Re: Python .....

Samstag, 12. Februar 2005, 21:22

rippchen: bis zu der stelle, wo die imports alle total crazy gehen, gefällt mir das auch ::)

Re: Python .....

Sonntag, 13. Februar 2005, 13:48

Irgendwie hab ich das Interesse verloren, seitdem ich mir mal ein paar Qt-Tuts durchgearbeitet habe... *gg*

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Re: Python .....

Sonntag, 13. Februar 2005, 19:40

man sollte natürlich abwägen, was für nen umfang man für das jeweilige braucht. in der reihe tkinter > wxwidgets > qt also von links nach rechts gehen (andere toolkits natürlich ausgelassen).

ein guter überblick und praxisbeispiele finden sich in diesem buch (das nicht ohne grund auf meinem amazon-wunschzettel steht):
Link