2016-06-28 2 views
1

진행률 표시 줄이 포함 된 팝업 창이 생성되는 응용 프로그램이 있습니다. 팝업 창과 관련된 코드는 다음과 같습니다. 이 팝업 창이이 창을 생성하는 응용 프로그램 위에 있어야합니다. wx.STAY_ON_TOP을 사용해 보았지만,이 스타일을 사용하면 팝업 창이 모든 응용 프로그램 위에 있어야하는데, 이는 내가 원하는 바가 아닙니다. 모든 조언/제안을 부탁드립니다! 당신이 기본 프레임 물건을 갖고 싶어wxpython : 팝업 창을 현재 응용 프로그램 위에 유지하는 방법

class ProgressBar(wx.Frame): 
    def __init__(self, parent): 
     wx.Frame.__init__(self, None, title="In progress...", 
         size=(300, 125))   
     GridBagSizer = wx.GridBagSizer() 
     TextFont = wx.Font(pointSize = 9, family = wx.SWISS, style = wx.NORMAL, weight = wx.NORMAL, faceName = 'Tahoma') 

     self.SetBackgroundColour('white') 
     self.gauge = wx.Gauge(self, range = 100, size = (-1, 30), style = wx.GA_HORIZONTAL, name = 'In Progress') 
     self.gauge.SetValue(0) 
     GridBagSizer.Add(self.gauge, pos = (0, 0), span = (1, 1), flag = wx.EXPAND|wx.ALL, border = 15) 

     self.txt = wx.StaticText(self, label = 'Retrieving data...', style = wx.ALIGN_CENTER) 
     self.txt.SetFont(TextFont) 
     box = wx.BoxSizer(wx.HORIZONTAL) 
     box.Add(self.txt, 0, wx.CENTER) 
     GridBagSizer.Add(box, pos = (1, 0), span = (1, 1), 
        flag = wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM, 
        border = 15) 

     GridBagSizer.AddGrowableCol(0) 
     #GridBagSizer.AddGrowableCol(1) 

     self.SetSizer(GridBagSizer) 
     self.SetMinSize((300, 125)) 
     self.SetMaxSize((300, 125)) 
     self.Layout() 
     self.Center() 

    def Update(self, step):   
     self.gauge.SetValue(step) 
     if step == 100: 
      self.Close() 

    def SetLabel(self, label): 
     self.txt.SetLabel(label) 
     self.Refresh() 
     self.Layout() 

답변

0

사용 스타일 wx.FRAME_FLOAT_ON_PARENT

class ProgressBar(wx.Frame): 
    def __init__(self, parent): # you must set the parent ... 
     wx.Frame.__init__(self, parent, title="In progress...", 
         size=(300, 125),style=wx.FRAME_FLOAT_ON_PARENT) 
     ...  

당신은 할 수

style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT 
관련 문제