wxPython: как изменить размер Dialog в соответствии с содержимым встроенного StaticText - PullRequest
0 голосов
/ 03 октября 2018

Это моя маленькая программа для тестирования:

import wx

class Test(wx.Dialog):
    def __init__(self, parent, title="", caption='', btnList=['OK']):
        wx.Dialog.__init__(self, parent, -1, title=title)
        self.btnList = btnList
        self.parent = parent
        sizer = wx.BoxSizer()

        self.panel = wx.Panel(self, -1)
        sizer.Add(self.panel)
        self.mainSizer = wx.BoxSizer(wx.VERTICAL)
        self.panel.SetSizer(self.mainSizer)

        self.caption = caption
        self.setCaption()
        self.setButton()

        self.SetSizerAndFit(sizer)


    def setCaption(self):
        caplb = wx.StaticText(self.panel, -1, self.caption)
        self.mainSizer.Add(caplb, 1, wx.EXPAND | wx.ALL, 10)
        capFont = caplb.GetFont()
        capFont.SetPointSize(10)
        capFont.SetWeight(wx.FONTWEIGHT_BOLD)
        caplb.SetFont(capFont)
        caplb.SetForegroundColour(wx.RED)

    def setButton(self):
        self.btnBox = wx.BoxSizer(wx.HORIZONTAL)
        self.mainSizer.Add(self.btnBox, 0, wx.EXPAND | wx.BOTTOM, 10)
        self.btnBox.Add((1, 1), 1, wx.EXPAND)
        self.btns = []
        for i in range(len(self.btnList)):
            self.btns.append(wx.Button(self.panel, -1, self.btnList[i]))
            self.btnBox.Add(self.btns[i])
            self.btnBox.Add((1, 1), 1, wx.EXPAND)

if __name__ == "__main__":
    app = wx.App()
    msg = ""
    for i in range(8):
        msg += "%s: ATTENTION! ATTENTION! ATTENTION! ATTENTION!\n" % i

    dlg = Test(None, caption=msg, title="WARNING", btnList=['Yes', 'No'])
    dlg.CenterOnParent()
    val = dlg.ShowModal()
    app.MainLoop()

Я хочу, чтобы диалоговое окно распространялось так, чтобы весь текст в caplb был виден.В большинстве систем, над которыми я работал, этот код работает хорошо.Но когда я перехожу на новую систему, есть что-то с лимитом gtk, чтобы показать только половину caplb.Я не знаю, как заставить это показать все StaticText.Можете ли вы взглянуть на это и показать мне подсказку?Спасибо вперед !!!

...