【问题标题】:I can't figure out how to use wxpython's BoxSizer我不知道如何使用 wxpython 的 BoxSizer
【发布时间】:2017-10-01 15:55:36
【问题描述】:

我正在尝试学习如何使用 wxpython,但我似乎无法让 BoxSizer 正常工作。我已经有一段时间了,并查看了我能找到的任何文档,但我似乎找不到我做错了什么。

每当我运行以下代码时,BoxSizer 似乎什么都不做: https://imgur.com/a/ZRkjA

import wx

class Main(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, wx.ID_ANY, title="PictoCrypt", size=(-1,-1))

        # Initialize Panel
        self.panel = wx.Panel(self, wx.ID_ANY)

        #Encrypt & Decrypt radio buttons
        radioChoices = ["Encrypt", "Decrypt"]
        optionsBox = wx.RadioBox(self, id=wx.ID_ANY, choices=radioChoices, style=wx.RA_SPECIFY_COLS)

        #Path Entry Line
        pathLabel = wx.StaticText(self.panel, label="File:")
        pathEntry = wx.TextCtrl(self.panel)

        #Add Entry Line into Sizers
        pathSizer = wx.BoxSizer(wx.HORIZONTAL)
        pathSizer.Add(pathLabel, wx.SizerFlags().Left())
        pathSizer.Add(pathEntry, wx.SizerFlags().Right())

        #Add everything into main sizer
        self.topSizer = wx.BoxSizer(wx.VERTICAL)
        self.panel.SetSizer(self.topSizer)
        self.topSizer.Add(optionsBox)
        self.topSizer.Add(pathSizer)    

        self.Show(True)

app = wx.App(False)
frame = Main(None)
app.MainLoop()

【问题讨论】:

    标签: python user-interface boxsizer wxpython


    【解决方案1】:

    我认为这行有错误:

    optionsBox = wx.RadioBox(self.panel, id=wx.ID_ANY, choices=radioChoices, style=wx.RA_SPECIFY_COLS)
    

    RadioBox 的父级应该是self.panel(而不是self)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      • 2013-07-28
      • 2023-04-01
      • 2020-09-07
      • 2014-12-31
      • 2021-06-14
      相关资源
      最近更新 更多