wxPython:什么阻止我缩小窗口?

时间:2014-10-10 01:54:52

标签: wxpython wxwidgets

我继承了一个wxPython应用程序(我生命中的故事),你不能让窗口变得更小(但你可以把它做得更大)。什么可能阻止它调整小?我有什么可以找到造成这种情况的原因?该窗口包含一个带有2个选项卡的Notebook。一个选项卡有一个网格,另一个选项卡有一个Panel和3个网格。

4 个答案:

答案 0 :(得分:0)

http://docs.wxwidgets.org/trunk/classwx_top_level_window.html#ac01a45e5d82e4e3be22a4841c1217e11

virtual void wxTopLevelWindow::SetSizeHints (   int     minW,
int     minH,
int     maxW = -1,
int     maxH = -1,
int     incW = -1,
int     incH = -1 
)       
virtual
Allows specification of minimum and maximum window sizes, and window size increments.

If a pair of values is not set (or set to -1), no constraints will be used.

Parameters
minW    The minimum width.
minH    The minimum height.
maxW    The maximum width.
maxH    The maximum height.
incW    Specifies the increment for sizing the width (GTK/Motif/Xt only).
incH    Specifies the increment for sizing the height (GTK/Motif/Xt only).
Remarks
Notice that this function not only prevents the user from resizing the window outside the given bounds but it also prevents the program itself from doing it using wxWindow::SetSize().
Reimplemented from wxWindow.

答案 1 :(得分:0)

可能是对话框/框架调用SetMinSize。

答案 2 :(得分:0)

某些元素可能已设置大小。正确设置窗口的大小调整器,而不使用隐式窗口大小调整器,将不允许您将窗口大小更改为小于具有设置大小的元素所需的窗口大小。见例:

import wx

class MainWindow(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.panel = wx.Panel(self)
        self.button = wx.Button(self.panel, label="Test", size=(200, 200))

        self.windowSizer = wx.BoxSizer()
        self.windowSizer.Add(self.panel, 1, wx.ALL | wx.EXPAND)

        self.sizer = wx.BoxSizer()
        self.sizer.Add(self.button)

        self.border = wx.BoxSizer()
        self.border.Add(self.sizer, 1, wx.ALL | wx.EXPAND, 5)

        self.panel.SetSizerAndFit(self.border)  
        self.SetSizerAndFit(self.windowSizer)   
        self.Show()

app = wx.App(False)
win = MainWindow(None)
app.MainLoop()

无法调整窗口大小,因此强制按钮小于200x200。

答案 3 :(得分:0)

那么,我认为代码正在处理resize事件,允许你使窗口更大,但不能更小。

查找类似void handlerFuncName(wxSizeEvent& event)

的内容

同时寻找wxEVT_SIZE