У меня есть диалог, который я хочу изменить размер.Он отлично работает в Linux, но в Windows его размер не изменится.
Я знаю, что можно обойтись при использовании wx.Frame и MakeModal, но почему это не сработает?
import wx
class TestDialog(wx.Dialog):
MIN_SIZE = (200, 100)
def __init__(self, *args, **kwargs):
super(TestDialog, self).__init__(None, *args, **kwargs)
self.panel = MainPanel(self)
self.Title = 'Test dialog'
self.Bind(wx.EVT_CLOSE, self.on_quit_click)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.panel)
self.SetSizer(sizer)
self.SetMinSize(self.MIN_SIZE)
self.SetSize(self.MIN_SIZE)
self.status = wx.ID_CANCEL
def on_cmd_ok_click(self, event):
self.status = wx.ID_OK
self._tear_down
def on_quit_click(self, event):
self._tear_down()
def _tear_down(self):
self.Destroy()
class MainPanel(wx.Panel):
def __init__(self, parent, *args, **kwargs):
super(MainPanel, self).__init__(parent, *args, **kwargs)
self.parent = parent
name_sizer = self._name_sizer(parent)
button_sizer = self._button_sizer(parent)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(name_sizer, flag=wx.EXPAND)
sizer.Add(button_sizer, flag=wx.EXPAND)
self.SetSizer(sizer)
def _name_sizer(self, parent):
lbl_name = wx.StaticText(self, label='Name:')
self.txt_name = wx.TextCtrl(self, size=(2000, -1))
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(lbl_name, flag=wx.ALIGN_CENTER)
sizer.Add(self.txt_name, flag=wx.EXPAND)
return sizer
def _button_sizer(self, parent):
cmd_action = wx.Button(self, id=wx.ID_OK)
cmd_cancel = wx.Button(self, wx.ID_EXIT)
cmd_action.Bind(wx.EVT_BUTTON, parent.on_cmd_ok_click)
cmd_cancel.Bind(wx.EVT_BUTTON, parent.on_quit_click)
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(cmd_action)
sizer.Add((0, 0), proportion=1)
sizer.Add(cmd_cancel)
return sizer
if __name__ == '__main__':
wx_app = wx.App()
TestDialog().ShowModal()
wx_app.MainLoop()
Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit.Vivamus contectetur ex arcu, iaculis mi vestibulum vel.Nullam iaculis sed nunc at dictum.Quisque tincidunt vulputate quam ut posuere.Maecenas scelerisque, odio vitae placerat tempus, metus mauris cursus erat, quis vulputate mauris turpis sit amet urna.В привычных привычках.Нулла ес хусто виверра анте следствиеНун сит амет нулла портиттор, изречение от ут, вененатис квам.Vestibulum ante ipsum primis у faucibus orci luctus et ultrices posuere cubilia Curae;Ut nec odio ac ex ullamcorper Commodo.Aenean et leo justo.Maecenas iaculis purus vel metus lobortis convallis.Ut nisi nisl, dapibus eget nunc et, fringilla facilisis mi.Ut justo sem, tempus in Tellus Eu, faucibus ultricies elit.Nam maximus sem lorem, porttitor porta mauris eleifend id.Целочисленный condimentum dolor без транспортных средств tincidunt.Ut augue velit, placerat ut efficitur et, scelerisque et nulla.