gpt4 book ai didi

python - 在wxpython中将按钮放在列表框下面?

转载 作者:太空宇宙 更新时间:2023-11-03 19:26:05 25 4
gpt4 key购买 nike

我试图将按钮放在列表框下方,但是我尝试的所有内容似乎都会扭曲或导致问题。我希望任何人都可以帮助我。

我想在列表框下方放置 2 个按钮,它们应该始终根据窗口的大小更改位置(这样它就不会消失),基本上,当您调整应用程序窗口的大小时,它应该更改按钮的位置按钮。

这是我到目前为止所拥有的

things_inlistbox=[]
things2_listbox=[]
things3listbox=[]
things4listbox=[]
import wx
def areachange(self,pg):
print pg
if pg=="Things":
self.Things_area.Show()
else:
self.Things_area.Hide()

class things1tab(wx.Panel):
def newAddImage(self,parent):
things2_listbox.append('hi');
self.listBox.Set(things2_listbox)
self.listBox.SetSelection(len(things2_listbox)-1)
def reName(self,parent):
sel = self.listBox.GetSelection()
text = self.listBox.GetString(sel)
renamed = wx.GetTextFromUser('Rename item', 'Rename dialog', text)
if renamed != '':
things2_listbox.pop(sel)
things2_listbox.insert(sel,renamed)
self.listBox.Set(things2_listbox)
self.listBox.SetSelection(sel)
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.listBox = wx.ListBox(self, size=(200, -1), choices=things2_listbox, style=wx.LB_SINGLE)
self.sizer = wx.BoxSizer()
self.sizerMain = wx.BoxSizer()
self.listBox.Bind(wx.EVT_LISTBOX_DCLICK, self.reName)

self.sizer.Add(self.listBox, proportion=0, flag=wx.TOP | wx.EXPAND | wx.LEFT, border=5)
self.sizerMain.Add(self.sizer, proportion=0, flag=wx.BOTTOM | wx.EXPAND, border=70)
self.SetSizer(self.sizerMain)
class imageArea(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
wx.StaticBox(self, -1, 'Personal Info', (400, 5), size=(240, 170))
self.quote = wx.StaticText(self, label="Your quote :", pos=(20, 30), size=(200, -1))
self.Show()

self.SetSizer(self.sizerMain)
class things2tab(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
t = wx.StaticText(self, -1, "This is a PageTwo object", (40,40))

class things3tab(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
t = wx.StaticText(self, -1, "This is a PageThree object", (60,60))

class things4tab(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
t = wx.StaticText(self, -1, "This is a PageThree object", (400,60))

class MyNotebook(wx.Notebook):
def __init__(self, *args, **kwargs):
wx.Notebook.__init__(self, *args, **kwargs)

class MyPanel(wx.Panel):
def OnPageChanged(self, event):
new = event.GetSelection()
areachange(self,self.notebook.GetPageText(new))
event.Skip()

def OnPageChanging(self, event):
event.Skip()
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
self.notebook = MyNotebook(self, size=(225, -1))
# self.button = wx.Button(self, label="Something else here? Maybe!")
tab_Things = things1tab(self.notebook)
tab_Things2 = things2tab(self.notebook)
tab_Things3 = things3tab(self.notebook)
tab_Things4 = things4tab(self.notebook)

# add the pages to the notebook with the label to show on the tab
self.notebook.AddPage(tab_Things, "Things",select=True)
self.notebook.AddPage(tab_Things2, "Things2")
self.notebook.AddPage(tab_Things3, "Things3")
self.notebook.AddPage(tab_Things4, "Things4")
self.Things_area=wx.StaticText(self, -1, "This is a PageOne object", (300,240))
self.sizer = wx.BoxSizer()
self.sizer.Add(self.notebook, proportion=0, flag=wx.EXPAND)
# self.sizer.Add(self.button, proportion=0)
self.SetSizer(self.sizer)
self.notebook.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
self.notebook.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGING, self.OnPageChanging)
areachange(self,self.notebook.GetPageText(0))


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

self.Show()


app = wx.App(False)
win = MainWindow(None, size=(600, 400))
app.MainLoop()

我不知道该怎么做,如果有人能帮助我,我将非常感激。如果这是简单的事情,请原谅我,但是我已经坚持了好几天了。

最佳答案

我不确定这是否是您的意思,但尝试用此替换您的“things1tab”代码,看看它是否有效:

class things1tab(wx.Panel):
def newAddImage(self,parent):
things2_listbox.append('hi');
self.listBox.Set(things2_listbox)
self.listBox.SetSelection(len(things2_listbox)-1)
def reName(self,parent):
sel = self.listBox.GetSelection()
text = self.listBox.GetString(sel)
renamed = wx.GetTextFromUser('Rename item', 'Rename dialog', text)
if renamed != '':
things2_listbox.pop(sel)
things2_listbox.insert(sel,renamed)
self.listBox.Set(things2_listbox)
self.listBox.SetSelection(sel)
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.listBox = wx.ListBox(self, size=(200, -1), choices=things2_listbox, style=wx.LB_SINGLE)
self.sizer = wx.BoxSizer(wx.VERTICAL)
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
self.sizerMain = wx.BoxSizer()
self.listBox.Bind(wx.EVT_LISTBOX_DCLICK, self.reName)
btn = wx.Button(self, label="Test")
btnTwo = wx.Button(self, label="Test 2")

self.sizer.Add(self.listBox, proportion=1, flag=wx.TOP | wx.EXPAND | wx.LEFT, border=5)
btnSizer.Add(btn, 0, wx.ALL, 5)
btnSizer.Add(btnTwo, 0, wx.ALL, 5)
self.sizer.Add(btnSizer)
self.sizerMain.Add(self.sizer, proportion=0, flag=wx.BOTTOM | wx.EXPAND, border=70)
self.SetSizer(self.sizerMain)

我所做的就是创建一个按钮大小调整器,向其中添加两个按钮并将其嵌套在“self.sizer”中。我还将以下比例从零更改为一:

self.sizer.Add(self.listBox, proportion=1, flag=wx.TOP | wx.EXPAND | wx.LEFT, border=5)

希望这能帮助您走得更远。

关于python - 在wxpython中将按钮放在列表框下面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8056596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com