Найти - Пользователи
Полная версия: wxFrame - modal или wxDialog - SetToolBar
Начало » GUI » wxFrame - modal или wxDialog - SetToolBar
1
DeFoR
Доброе время
Помогите пожалусто
ни как не могу разобраться как сделать:
нужна модальная форма с тулбаром
У wxFrame нет метода ShowModal
а у wxDialog нет SetToolBar
или я делаю что то нетак.
hellslade
like this maybe..
# -*- coding: cp1251 -*-

import wx

class Frame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
self.panel = wx.Panel(self)
self.but = wx.Button(self.panel, label='Show Modal Frame')
wx.EVT_BUTTON(self, self.but.GetId(), self.ShowFrame)
def ShowFrame(self, evt):
frame = ModalFrame(self)
frame.Show()

class ModalFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, style=wx.DEFAULT_FRAME_STYLE | wx.STAY_ON_TOP)
self.panel = wx.Panel(self)
wx.EVT_KILL_FOCUS(self, self.OnKillFocus)
wx.EVT_KILL_FOCUS(self.panel, self.OnKillFocus)
def OnKillFocus(self, evt):
self.SetFocus()

class App(wx.App):
def __init__(self):
wx.App.__init__(self)
frame = Frame(None)
frame.Show()

if __name__ == "__main__":
app = App()
app.MainLoop()
DeFoR
Спасибо за ответ
только у меня это несработало, модальнаяформа теряет фокус.
Вообщем я подумал и решил пользоваться не модальным фреймом, просто передаю ему ссылку на объект вызвавший его, и получилось что модальность вообщемто не так и необходима.
Спасибо http://python.su/forum/viewtopic.php?id=3749 натолкнул на решение
Хотя всеже и модальный фрейм тоже хочется.
hellslade
DeFoR
только у меня это несработало
Конечно несработало :) ведь у вас контролы на этом фрейме :)
Для каждого контрола нужно определить событие wx.EVT_KILL_FOCUS(<контрол>, self.OnKillFocus)
Если их много, можно в цикле пройтись по всем child'ам фрейма
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB