python - 在框架wxpython中对齐列表框

标签 python listbox wxpython boxsizer

我正在尝试弄清楚如何正确对齐 ListBox。一旦我插入 ListBox 的行,布局就会变成一团糟。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import wx

oplist=[]
with open("options.txt","r") as f:
    for line in f:
        oplist.append(line.rstrip('\n'))
print(oplist)

class Example(wx.Frame):

    def __init__(self, parent, title):
        super(Example, self).__init__(parent, title = title, size=(200,300))

        self.InitUI()
        self.Centre()
        self.Show()

    def InitUI(self):
        p = wx.Panel(self)
        vbox= wx.BoxSizer(wx.VERTICAL)
        self.l1 = wx.StaticText(p, label="Enter number", style=wx.ALIGN_CENTRE)
        vbox.Add(self.l1, -1, wx.ALIGN_CENTER_HORIZONTAL, 200)
        self.b1 = wx.Button(p, label="Buton 1")
        vbox.Add(self.b1, -1, wx.ALIGN_CENTER_HORIZONTAL,100)
        self.flistbox= wx.ListBox(self,choices=oplist, size=(100,100), name="Field", wx.ALIGN_CENTER_HORIZONTAL)
        vbox.Add(self.flistbox, -1, wx.CENTER, 10)
        p.SetSizer(vbox)
        
app = wx.App()
Example(None, title="BoxSizer")
app.MainLoop()

这里有和没有的输出: With ListBox Without

最佳答案

列表框通过使用 self 成为框架的父级。

self.flistbox= wx.ListBox(
    self,choices=oplist, size=(100,100), name="Field", wx.ALIGN_CENTER_HORIZONTAL)

它应该像其他控件一样使用 p 作为面板的父级。

self.flistbox= wx.ListBox(
    p,choices=oplist, size=(100,100), name="Field", wx.ALIGN_CENTER_HORIZONTAL)

关于python - 在框架wxpython中对齐列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39579580/

相关文章:

.net - 反转 ListBox 项目(按 "nothing"降序排序)

python - 在我的 apache 本地主机 Ubuntu 12.04 中安装 WSGI

javascript - 如何在 Python 中使用 Appengine 读写文件?

python - 从列表框项中获取文本

python - 是否有 wxPython( Phoenix ) 的 wx.EVT_CHAR 或 event.GetKeyCode() 等价物?

python - EVT_TEXT 事件上的 .Skip() 会执行任何操作吗?

python - 在没有路由焦点的情况下将滚动事件路由到 wxPython 中的 ScrolledPanel

python - 如何从 json 流中解析对象

python - 提高 Django 中的 INSERT 性能以处理大量大量数据的记录

wpf - 如何防止 WPF 列表框控件中出现重复项?