更改按钮文本时的 wxPython 问题

wxPython issue in changing button text

我正在开发一个 wxPython 应用程序,其中有一个带有标签文本的按钮 'Allocate'。此外,我的应用程序中还有 2 个单选选项,即 'UnAllocated' 和 'Allocated'。默认情况下,当应用程序启动时,单选选项 'UnAllocated' 被选中,按钮的标签文本为 'Allocate'。我制作了事件驱动代码,在选择单选选项 'Allocated' 后将按钮的标签文本从 'Allocate' 更改为 'Re-Allocate'。到目前为止一切正常,代码按预期工作。

现在问题出在单选选项 'Allocated' 的情况下,按钮标签确实获得了新的标签文本 'Re-Allocate' 但是它会覆盖以前的标签文本而不是更改。然后,只要我将鼠标光标放在按钮上,文本就会刷新并显得干净清晰。下面是我的代码

def rdoAllocated_Click(self, event):
    self.btn_Allocate.SetLabelText('Re-Allocate')

def rdoUnAllocated_Click(self, event):
    self.btn_Allocate.SetLabelText('Allocate')

有没有办法在更改后自动刷新按钮标签文本以清楚地显示新文本而不是不可读的覆盖文本。 Here is the image how it looks when getting updated

尝试调用 self.btn_Allocate.Refresh() 这有时会发生,具体取决于平台和小部件类型。 Refresh 只是告诉系统在不久的将来发送一个绘画事件,并且很可能会为您解决问题。如果不是,那么您可能需要调用父 window 的 Refresh