小部件出现在一个奇怪的位置,直到在 wxpython 中触摸屏幕
widgets appear in a weird position until the screen is touched in wxpython
我刚开始使用 wxpython,我构建了一个代码,用他从 pubsub 获得的数字编写一条消息,但是当我到达该面板时,该特定消息出现在一个奇怪的位置,直到我更改应用程序的分辨率然后它又回来了
面板代码为:
class ChangeNumStationPanel(wx.Panel):
def __init__(self, parent, frame):
wx.Panel.__init__(self, parent, pos=wx.DefaultPosition,
size=(1000,800),
style=wx.SIMPLE_BORDER)
self.frame = frame
self.parent = parent
self.SetBackgroundColour(wx.LIGHT_GREY)
sizer = wx.BoxSizer(wx.VERTICAL)
# current num box
currentNum_box = wx.BoxSizer(wx.HORIZONTAL)
self.currentNum_Text = wx.StaticText(self, 1, label="")
currentNum_box.Add(self.currentNum_Text, 0, wx.CENTER, 5)
# subscribe to pubsub to know current num of station per message
pub.subscribe(self.change_current, "current_changer")
sizer.Add(currentNum_box,0, wx.CENTER, 5)
self.SetSizer(sizer)
self.Layout()
self.Hide()
def change_current(self, currentNum):
"""
:param currentNum: current number of station per message
:return: changes the label according to the number
"""
self.currentNum_Text.SetLabel("Current number of station per message: " + currentNum)
出现奇怪的文本是“每条消息的当前站数:”
很抱歉,如果我解释得不够好,如果您不明白,请问我,我会尽力帮助您理解,以便您能帮助我:)
消息的呈现方式:
您可以看到文本不在中心...但是在我移动应用程序后,文本神奇地回到了中心。
更新标签中的文本后,只需在面板上添加 Layout() 方法即可。直到调用面板才意识到它的内容已经改变并且 sizer 需要 re-caclulating
def change_current(self, currentNum):
"""
:param currentNum: current number of station per message
:return: changes the label according to the number
"""
self.currentNum_Text.SetLabel("Current number of station per message: " + currentNum)
self.Layout()
我刚开始使用 wxpython,我构建了一个代码,用他从 pubsub 获得的数字编写一条消息,但是当我到达该面板时,该特定消息出现在一个奇怪的位置,直到我更改应用程序的分辨率然后它又回来了
面板代码为:
class ChangeNumStationPanel(wx.Panel):
def __init__(self, parent, frame):
wx.Panel.__init__(self, parent, pos=wx.DefaultPosition,
size=(1000,800),
style=wx.SIMPLE_BORDER)
self.frame = frame
self.parent = parent
self.SetBackgroundColour(wx.LIGHT_GREY)
sizer = wx.BoxSizer(wx.VERTICAL)
# current num box
currentNum_box = wx.BoxSizer(wx.HORIZONTAL)
self.currentNum_Text = wx.StaticText(self, 1, label="")
currentNum_box.Add(self.currentNum_Text, 0, wx.CENTER, 5)
# subscribe to pubsub to know current num of station per message
pub.subscribe(self.change_current, "current_changer")
sizer.Add(currentNum_box,0, wx.CENTER, 5)
self.SetSizer(sizer)
self.Layout()
self.Hide()
def change_current(self, currentNum):
"""
:param currentNum: current number of station per message
:return: changes the label according to the number
"""
self.currentNum_Text.SetLabel("Current number of station per message: " + currentNum)
出现奇怪的文本是“每条消息的当前站数:” 很抱歉,如果我解释得不够好,如果您不明白,请问我,我会尽力帮助您理解,以便您能帮助我:)
消息的呈现方式:
您可以看到文本不在中心...但是在我移动应用程序后,文本神奇地回到了中心。
更新标签中的文本后,只需在面板上添加 Layout() 方法即可。直到调用面板才意识到它的内容已经改变并且 sizer 需要 re-caclulating
def change_current(self, currentNum):
"""
:param currentNum: current number of station per message
:return: changes the label according to the number
"""
self.currentNum_Text.SetLabel("Current number of station per message: " + currentNum)
self.Layout()