调整wx python对话框的大小在windows上不起作用
我有一个对话框,我想调整大小。它在Linux上工作得很好,但在Windows上它不会调整大小 我知道使用wx.Frame和MakeModal是一种权宜之计,但为什么这不起作用呢调整wx python对话框的大小在windows上不起作用,windows,wxpython,Windows,Wxpython,我有一个对话框,我想调整大小。它在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,
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,是一位杰出的献身者。前庭前庭前庭前庭前庭前庭前庭前庭前庭前庭前庭前庭前庭前庭。纳拉姆·亚库利斯在格言中写道。这是一个很好的例子。玛塞纳斯权杖,奥迪奥·维塔·普莱拉特·坦普斯,梅特斯·莫里斯·库鲁斯·埃拉特,瓦努特·莫里斯·图尔皮斯·阿梅特·乌尔纳。在hac habitasse Plateum,一句名言。不允许任何欧盟成员国参加欧盟非欧盟委员会的会议。我们坐在维尼那提斯广场上。虎口浮雕和肘部浮雕同侧前庭;这是一个非常好的例子。埃尼安和利奥·胡斯托。肌肉痉挛。但是,我不知道该怎么做,因为我的面部轮廓很模糊。Ut justo sem,tellus eu中的tempus,faucibus ultricies Elite。Nam maximus sem lorem,porttitor porta mauris eleifend id.Integer调味品dolor non vehicula tincidunt。但是augue velit、placerat、efficitur et、scelerisque et nulla。问题在于,您使用的是wx.对话框的默认样式,而这似乎会从一个操作系统更改为另一个操作系统 您只需通过更改线条来定义自定义样式:
super(TestDialog, self).__init__(None, *args, **kwargs)
致:
完美的谢谢。@Psionman可能正在MWE中,但OK按钮的绑定工作不正常。你注意到了吗?我试图解决这个问题,但到目前为止没有运气。@krb85我不知道你的意思。它似乎在我的系统上运行得很好:@Psionman我已经在Win10和macOS 10.14.4上测试过了,OK按钮除了破坏wx.Dialog外,什么都没做。@krb65啊!明白你的意思了。它不叫"撕"
super(TestDialog, self).__init__(None, *args, style=wx.RESIZE_BORDER|wx.CAPTION|wx.CLOSE_BOX, **kwargs)