2016-06-06 6 views
0

In meinem Projekt zu ändern, Anweisung für Wxdialog ist wx.Dialog.__init__(self, parent, wx.ID_ANY, 'Launch dialog', size=(-1,-1), pos=(-1,-1))wxPython-Größe von wxdialog nicht

Ich habe versucht, indem die Größe size=(-1,-1)-size=(800,750)

aber nichts, um das Dialogfeld Größe zu erhöhen hat sich geändert ... Gibt es irgendeinen Grund dafür? Bitte helfen Sie mir, das zu lösen.

+0

Der wx.Dialog wird angezeigt? –

+0

ya Dialog öffnet sich ... aber mit der Standardgröße der Eltern denke ich. – Nithya

+0

versuchen, self.SetSize ((sizex, sizey)) am Ende der init-Funktion zu setzen. Wenn nicht funktionieren, versuchen Sie dialog.SetSize nach der Erstellung der Instanz –

Antwort

0

Ihr Code sieht gut aus.
Hier ist ein Arbeits Dialog von einem Live-Projekt

class Rem_mess(wx.Dialog): 
    def __init__(self,parent,ddate,dtext,dtype): 
     wx.Dialog.__init__(self, parent, wx.ID_ANY, dtype, size= (320,240), pos=(1000,10)) 
     font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT) 
     font.SetPointSize(9) 
     self.SetWindowStyle(wx.STAY_ON_TOP) 
     self.snooze_list = ['Snooze for','5 Mins','15 Mins','30 Mins','1 Hour','1 Day','1 Week','No Snooze'] 
     self.snooze_mins = [0,5,15,30,60,1440,10080,0] 
     time_panel = wx.Panel(self, wx.ID_ANY) 
     time_panel.SetFont(font) 

     label_date = wx.StaticText(time_panel, wx.ID_ANY, (ddate)) 
     label_text = wx.TextCtrl(time_panel, wx.ID_ANY, style= wx.TE_MULTILINE | wx.TE_READONLY, size=(300,110)) 
     self.snooze = wx.Choice(time_panel, wx.ID_ANY, choices=self.snooze_list,size=(200,28)) 
     self.quit_button = wx.Button(time_panel, label="&Close", size=(70,30)) 
     time_panel.SetBackgroundColour(wx.Colour(201, 196, 255)) 
     sizer = wx.GridBagSizer(hgap=2,vgap=2) 
     sizer.Add(label_date, pos=(0,1), flag = wx.ALL|wx.EXPAND) 
     sizer.Add(label_text, pos=(1,1), flag = wx.ALL|wx.EXPAND) 
     sizer.Add(self.snooze, pos=(2,1), flag = wx.ALL|wx.EXPAND) 
     sizer.Add(self.quit_button,pos=(4,1), flag =wx.ALL|wx.CENTER) 
     time_panel.SetSizer(sizer) 
     self.quit_button.Bind(wx.EVT_BUTTON, self.OnQuit) 
     label_text.SetValue(dtext) 

    def OnQuit(self, event): 
     self.Close() 

    def GetSelection(self): 
     idx = self.snooze.GetSelection() 
     return self.snooze_mins[idx] 

    def GetSelectionString(self): 
     return self.snooze.GetString(self.snooze.GetSelection()) 

Und es wird wie folgt aufgerufen:

res = Rem_mess(parent=None, ddate=d_date,dtext=d_text,dtype="Reminder") 
    if res.ShowModal() == wx.ID_OK: 
     snooze_res = res.GetSelection() 
    res.Destroy() 

Ich hoffe, es hilft!

+0

Hallo danke für die Lösung .. Dies funktioniert nicht für meinen Fall.Parent sollte nicht "None" für meinen Dialog sein. Wenn ich es None mache, kommt Attribut Fehler. – Nithya

+0

Ohne ein minimales, vollständiges und überprüfbares Beispiel tanzen wir im Dunkeln. http://StackOverflow.com/Help/Mcve –

+0

Hallo, bitte sehen Sie dies [http://stackoverflow.com/questions/37112551/how-to-stop-growing-width-of-window-when-child-sizers-width -increased-in-wx-dial] .. Dies wird auch von mir mit dem obigen Problem auch gepostet. – Nithya