Article View: pl.comp.lang.python
Article #8395[wxPython] Co tu robię nie tak ?
From: w.p.
Date: Tue, 26 Apr 2005 16:13
Date: Tue, 26 Apr 2005 16:13
68 lines
3353 bytes
3353 bytes
"""KOlejne pytanie z cyklu "a u mnie nie działa" :)
Potrzebuje zrobić skróty klawiaturowe do funkcji wywoływanych
kliknięciem na klawisz na toolbarze MDI, czyli żeby Alt+F wywoływało
tą samą reakcję co kliknięcie na przycisk "Filtr".
Niestety coś nie chce działać. Owszem child frame w MDI, działa, ale
parent coś nie chce... Może znów coś przeoczyłem?
Z kolei wxAcceleratorTable to chyba działa tylko z menu - którego
nie mam. Coś robię nie tak? MDI ma znów jakieś inne metody niż
standardowe okienko, czy może jakiś bug i trzeba go obejść?
A może da się jakos wykorzystać wxAcceleratorTable?
Bo to łatwe zapowiadało - a tu co krok jakieś kłody pod nogi :/
"""
#########################################################################
#!/usr/bin/env python
from wxPython.wx import *
#----------------------------------------------------------------------
class MyParentFrame(wxMDIParentFrame):
def __init__(self):
wxMDIParentFrame.__init__(self, None, -1, "MDI Parent",
size=(600,400))
MainTb=self.CreateToolBar(wxTB_HORIZONTAL|wxNO_BORDER|wxTB_FLAT)
MainTb.SetToolBitmapSize((24,24))
self.passBut=wxButton(MainTb,-1,label="&Hasla")
self.filterBut=wxButton(MainTb,-1,label="&Filtr")
MainTb.AddControl(self.passBut)
MainTb.AddSeparator()
MainTb.AddControl(self.filterBut)
MainTb.Realize()
win = wxMDIChildFrame(self, -1, "Child Window", size=(200,200))
# dziala
win.Connect(-1, -1, wxEVT_KEY_DOWN, self.OnKeyDown2)
# nie dziala
self.Connect(-1, -1, wxEVT_KEY_DOWN, self.OnKeyDown)
# accelTab=wxAcceleratorTable([
# (wxACCEL_ALT,'H',1231),
# (wxACCEL_ALT,'F',1232),
# (wxACCEL_ALT,'B',1233),
# (wxACCEL_ALT,'S',111),
# (wxACCEL_ALT,'O',32432),
# (wxACCEL_ALT,'P',23432),
# (wxACCEL_ALT,'I',1236),
# (wxACCEL_ALT,'D',1237)])
# self.SetAcceleratorTable(accelTab)
def OnKeyDown(self, evt):
print "stary"
def OnKeyDown2(self, evt):
print "dzieciak"
#----------------------------------------------------------------------
if __name__ == '__main__':
class MyApp(wxApp):
def OnInit(self):
frame = MyParentFrame()
frame.Show(True)
self.SetTopWindow(frame)
return True
app = MyApp(0)
app.MainLoop()
Technical Details
Message-ID:
<d4lolj$hrn$1@213.17.192.132>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!not-for-mail From: "w.p." <ptaku2_wywalto@tlen.pl> Newsgroups: pl.comp.lang.python Subject: [wxPython] Co tu robię nie tak ? Date: Tue, 26 Apr 2005 18:13:56 +0200 Organization: Netia Telekom S.A. Lines: 69 Message-ID: <d4lolj$hrn$1@213.17.192.132> NNTP-Posting-Host: 213.17.192.132 Mime-Version: 1.0 X-Trace: nefryt.internetia.pl 1114531316 18295 213.17.192.132 (26 Apr 2005 16:01:56 GMT) X-Complaints-To: abuse@inetia.pl NNTP-Posting-Date: Tue, 26 Apr 2005 16:01:56 +0000 (UTC) X-Accept-Language: en-us, en X-Tech-Contact: usenet@internetia.pl User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) X-Server-Info: http://www.internetia.pl/news/ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit