You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在wxPython类中如何获取静态文本(或任意)控件的值?

在wxPython中获取控件值的方法

针对你的问题,我来分情况说明不同控件的取值方式:

1. 静态文本控件(wx.StaticText)

静态文本控件的内容是通过**标签(Label)**来设置的,所以获取它的内容要用GetLabel()方法,而不是GetValue()(这个方法是给输入类控件设计的)。

结合你给出的代码片段,比如你定义的self.xtitle是静态文本,要获取它的内容可以这样写:

title_content = self.xtitle.GetLabel()
print(title_content)  # 会输出"Narrative Setup"

2. 其他常用控件的取值方法

不同类型的控件取值方法略有不同,这里列几个常见的:

  • 文本输入框(wx.TextCtrl):用GetValue()获取全部文本,或者GetLineText(line_num)获取指定行的文本
    # 假设你有一个wx.TextCtrl实例叫self.input_text
    input_content = self.input_text.GetValue()
    
  • 复选框(wx.CheckBox)GetValue()返回布尔值,表示是否被选中
    is_checked = self.check_box.GetValue()
    
  • 单选按钮(wx.RadioButton):同样用GetValue()判断是否选中
  • 下拉选择框(wx.Choice/wx.ComboBox)
    • GetStringSelection()获取选中的文本内容
    • GetSelection()获取选中项的索引(从0开始)
    selected_text = self.choice_box.GetStringSelection()
    selected_index = self.choice_box.GetSelection()
    

示例:在你的WizardPage类中添加取值方法

你可以在WizardPage类里新增一个方法来获取静态文本或者其他控件的值,比如:

class WizardPage(wx.Panel):
    """"""
    #----------------------------------------------------------------------
    def __init__(self, parent, title=None):
        """Constructor"""
        wx.Panel.__init__(self, parent)
        if title:
            if title == "Narrative Setup":
                self.sizer1 = wx.BoxSizer(wx.VERTICAL)
                self.SetSizer(self.sizer1)
                self.xtitle = wx.StaticText(self, -1, title)
                self.xtitle.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.BOLD))  # 补全你代码里的Font设置
                self.sizer1.Add(self.xtitle, 0, wx.ALL, 5)
    
    # 新增方法获取静态文本内容
    def get_title_content(self):
        return self.xtitle.GetLabel()

这样你在外部调用这个方法就能拿到静态文本的值了。

内容的提问来源于stack exchange,提问作者Steve W.

火山引擎 最新活动