wxPython:如何在SetLabelText之后更改对齐静态文本
如果通过wxpython创建框架并更改staticText的内容,则对齐将初始化。 我怎样才能解决这个问题?wxPython:如何在SetLabelText之后更改对齐静态文本,python,wxpython,wxformbuilder,Python,Wxpython,Wxformbuilder,如果通过wxpython创建框架并更改staticText的内容,则对齐将初始化。 我怎样才能解决这个问题? 我想再次对齐它。要动态设置窗口对齐标志,必须 去拿wx.Sizer 找到wx.SizerItem 通过SetFlag 调用Sizer.Layout() 下面是一个简单的例子: 导入wx 导入回溯 def run(): app=wx.app() #创建测试框架 frame=wx.frame(无,title=“测试帧”,大小=(500500)) #创建一个简单的boxsizer sizer=
我想再次对齐它。要动态设置窗口对齐标志,必须
SetFlag
Sizer.Layout()
导入wx
导入回溯
def run():
app=wx.app()
#创建测试框架
frame=wx.frame(无,title=“测试帧”,大小=(500500))
#创建一个简单的boxsizer
sizer=wx.BoxSizer()
#创建我们将动态调整的对象
st=wx.StaticText(框架,标签=“单击我”)
st.SetFont(wx.Font(30,74,90,wx.FONTWEIGHT_加粗,真,“Arial四舍五入”))
#首先将文本与中间对齐
添加(st、0、wx.对齐\中心\垂直)
框架设置器(施胶器)
#绑定到任意事件
st.Bind(wx.EVT左下,点击)
#进行初始布局并显示框架
frame.Layout()
frame.Show()
app.MainLoop()
单击时的def(事件):
event.Skip()
#检索静态文本对象
st=event.GetEventObject()#类型:wx.StaticText
#获取包含此对象的大小调整器
sizer=st.GetContainingSizer()#类型:wx.BoxSizer
#查找sizer项
#sizer项保存对齐信息并告知
#sizer将显示如何显示此对象
sizer_item=sizer.GetItem(st)#类型:wx.SizerItem
#交替在顶部和底部对齐
如果sizer\u item.GetFlag()&wx.ALIGN\u底部:
打印(“将对齐设置为顶部”)
sizer_item.SetFlag(wx.ALIGN_TOP)
其他:
打印(“将对齐设置为底部”)
sizer_item.SetFlag(wx.ALIGN_底部)
#调用布局以重新计算对象位置
sizer.Layout()
如果名称=“\uuuuu main\uuuuuuuu”:
尝试:
运行()
除:
traceback.print_exc()
输入()
要动态设置窗口对齐标志,必须
SetFlag
Sizer.Layout()
导入wx
导入回溯
def run():
app=wx.app()
#创建测试框架
frame=wx.frame(无,title=“测试帧”,大小=(500500))
#创建一个简单的boxsizer
sizer=wx.BoxSizer()
#创建我们将动态调整的对象
st=wx.StaticText(框架,标签=“单击我”)
st.SetFont(wx.Font(30,74,90,wx.FONTWEIGHT_加粗,真,“Arial四舍五入”))
#首先将文本与中间对齐
添加(st、0、wx.对齐\中心\垂直)
框架设置器(施胶器)
#绑定到任意事件
st.Bind(wx.EVT左下,点击)
#进行初始布局并显示框架
frame.Layout()
frame.Show()
app.MainLoop()
单击时的def(事件):
event.Skip()
#检索静态文本对象
st=event.GetEventObject()#类型:wx.StaticText
#获取包含此对象的大小调整器
sizer=st.GetContainingSizer()#类型:wx.BoxSizer
#查找sizer项
#sizer项保存对齐信息并告知
#sizer将显示如何显示此对象
sizer_item=sizer.GetItem(st)#类型:wx.SizerItem
#交替在顶部和底部对齐
如果sizer\u item.GetFlag()&wx.ALIGN\u底部:
打印(“将对齐设置为顶部”)
sizer_item.SetFlag(wx.ALIGN_TOP)
其他:
打印(“将对齐设置为底部”)
sizer_item.SetFlag(wx.ALIGN_底部)
#调用布局以重新计算对象位置
sizer.Layout()
如果名称=“\uuuuu main\uuuuuuuu”:
尝试:
运行()
除:
traceback.print_exc()
输入()
此问题是由文本控件的自动调整大小引起的,为了防止出现这种情况,只需将wx.ST_NO_自动调整大小添加到样式中,即可解决此问题
txtCtrl = wx.StaticText(parent, -1, "some label", style = wx.ALIGN_CENTER| wx.ST_NO_AUTORESIZE)
静态文本没有名为SetStyle()的方法。此问题是由文本控件的自动调整大小引起的,为了防止出现这种情况,只需将wx.ST_NO_自动调整大小添加到样式中即可解决
txtCtrl = wx.StaticText(parent, -1, "some label", style = wx.ALIGN_CENTER| wx.ST_NO_AUTORESIZE)
静态文本没有名为SetStyle()的方法。您的问题不清楚。请提供一个小的工作示例,说明您所拥有的,并解释您希望实现的目标。您的问题不清楚。请提供一个小的工作示例,说明您所拥有的,并解释您希望实现的目标。我遇到一个错误:AttributeError:“StaticText”对象没有属性“SetStyle”@Y。Wang谢谢您让我知道,我已经更新了答案我遇到一个错误:AttributeError:'StaticText'对象没有属性'SetStyle'@Y.Wang谢谢你让我知道,我已经更新了答案