gpt4 book ai didi

python - wxPython textctrl 暂时获取黑色矩形

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:09 27 4
gpt4 key购买 nike

所以,我正在尝试使用 wxPython 编写一个程序,该程序将有一个带有选项卡的笔记本,每个选项卡都让用户在文本框中输入一些数据。这是一个与物理相关的项目,所以我希望每个文本框在显示应输入的单位后都有一个“单位”标签。问题是:当程序运行时,我在左上角看到一个黑色矩形每个 textctrl 是单位所在标签的大小。在执行以下任一操作后,黑框将立即永久消失:

  • 按 Tab 键到文本控件上
  • 将光标移动到textctrl上
  • 在笔记本中切换标签页
  • 调整窗口大小,直到 textctrl 必须随之缩小。

功能上一切正常,我只是想在启动时去掉黑色矩形。

这是我的代码:

#! usr/bin/python

import wx

class MainWindow(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, title=title, size=(400,300))
self.make_gui()
self.Show()

def make_gui(self):
self.panel=wx.Panel(self,wx.ID_ANY)
sizer=wx.BoxSizer(wx.VERTICAL)
ins=self.gui_inputs()
sizer.Add(ins)
self.panel.SetSizer(sizer)

def gui_inputs(self):
sizer=wx.BoxSizer(wx.HORIZONTAL)
simpleinputs=(("Page 1",(("Name",None),("Item","in"))),("sec page",tuple()))
simple=self.gui_inputs_make_simple(simpleinputs)
sizer.Add(simple)
return sizer

def gui_inputs_make_simple(self,simpleinputs):
sizer=wx.BoxSizer(wx.VERTICAL)
notebook=wx.Notebook(self.panel)
for tab in simpleinputs:
pan=wx.Panel(notebook,wx.ID_ANY)
siz=wx.BoxSizer(wx.VERTICAL)
for item in tab[1]:
it=self.gui_inputs_make_labeled_unitinput(pan,item[0],item[1])
siz.Add(it)
pan.SetSizer(siz)
notebook.AddPage(pan,tab[0])
sizer.Add(notebook)
return sizer

def gui_inputs_make_labeled_unitinput(self,par,label='',units='',validatenumber=False):
sizer=wx.BoxSizer(wx.HORIZONTAL)
lbl=wx.StaticText(par,label=label+':')
sizer.Add(lbl)
edit=wx.TextCtrl(par)
sizer.Add(edit)
if units!=None:
unit=wx.StaticText(par,label=units)
sizer.Add(unit)
return sizer

app = wx.App(False)
frame = MainWindow("GUI")
app.MainLoop()

这是我得到的屏幕截图:

enter image description here

以下是我能够让黑色矩形消失的方法(但没有一个让我做我需要做的事情):

当我删除放入单元的代码时,它就可以工作了。当我从单位字段中删除文本时,它就起作用了。当我只有一个选项卡时,它就可以工作。

如果有人能告诉我为什么会发生这种情况,我将不胜感激。

提前致谢!

最佳答案

这是一个有趣的:

一旦正确设置了 sizer 级联,TextCtrl 实例中的黑框就会消失。您可以通过更新主 sizer 的布局来做到这一点:

sizer.Layout()

sizer.Fit(self)

make_gui 方法的末尾。

这对我有用,但当然不能解释为什么 TextCtrl 首先保持黑色。

关于python - wxPython textctrl 暂时获取黑色矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24288304/

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