不带调整手柄的wx.CreateStatusBar()

0 投票
1 回答
1777 浏览
提问于 2025-04-16 01:02

我正在创建一个不能调整大小的 wx.Frame 窗口。
我该如何禁用状态栏右侧的大小调整控件呢?

引用一下这个链接 http://docs.wxwidgets.org/2.6/wx_wxstatusbar.html#wxstatusbar :

窗口样式
wxST_SIZEGRIP -- 在 Windows 95 上,会在状态栏的右侧显示一个调整大小的控件。

在 wxPython 中,这个应该写成 wx.ST_SIZEGRIP。这是我的代码:

import wx

class Frame(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent=parent, id=wx.ID_ANY, title=title,
                          style=wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX),
                          pos=(20, 20))
        self.createStatusBar()
        self.Show()

    def createStatusBar(self):
        statusBar = self.CreateStatusBar()
        statusBar.SetWindowStyle(statusBar.GetWindowStyle() ^ wx.ST_SIZEGRIP)

if __name__ == '__main__':
    app = wx.PySimpleApp(False)
    frame = Frame(parent=None, title="Any title")
    app.MainLoop()

可惜的是,那个调整大小的控件还是在那儿。有没有什么办法让它消失呢?

1 个回答

2

与其在后面再设置样式,不如在创建的时候就直接设置,比如:

statusBar = self.CreateStatusBar(style=0)

如果有其他的状态栏样式,你也可以试试看。

撰写回答