wxpython - wxpython:如何从导入的脚本中使用 SetLabel 更新面板文本?
问题描述
我有一个带有一些按钮的 wxpython 面板。其中一个按钮执行控制实验室中的一台设备的 python 脚本。在 python 脚本中有一个 while 循环,看起来像,
ave_number = 5000
gpibObj.command('FAVN2,'+str(ave_number)) # Number of Averaging
gpibObj.command('STRT') #Start measurement bData
time.sleep(0.5)
avg = 0
print "Number of averages to be taken:",ave_number
while avg < ave_number:
avg=int(gpibObj.query("NAVG?0"))
print('Averages done:'+str(avg))
sys.stdout.write("\033[F")
time.sleep(0.3)
目前这打印这只是告诉脚本暂停,直到平均数达到它应该在的位置,并将当前的平均数打印到命令行。我的问题是,有没有一种方法可以将面板当前设置为将变量 avg(一个处于 while 循环中的变量、面板代码中的导入脚本中的变量)传递给类似的命令,
self.histstatusTXT.SetLabel(temptxt)
这样我就可以在面板本身上看到它实时更新。
为了清楚起见,按钮看起来像:
self.btn = wx.Button(self.panel,wx.ID_ANY,"Collect SR785 FFT Only",(5,45))
self.btn.Bind(wx.EVT_BUTTON,self.runScript,self.btn)
它正在执行的功能在哪里
def runScript(self, e):
dlg = wx.TextEntryDialog(self.panel,'New Directory Name?',"path-save","",style=wx.OK)
dlg.ShowModal()
dir = dlg.GetValue()
dlg.Destroy()
os.system("mkdir {0}".format(dir))
dlg = wx.TextEntryDialog(self.panel,'Name of Files?',"path-save","",style=wx.OK)
dlg.ShowModal()
filename =dlg.GetValue()
dlg.Destroy()
x = dir + '/' + filename
self.sb.SetStatusText('Working')
temptxt = "Data saved to {0}".format(x)
self.histstatusTXT.SetLabel("Collecting SR785 Data")
wx.Yield()
fft_group_SINGLE_FFT_function.FFT1(x)
self.sb.SetStatusText('Ready')
self.histstatusTXT.SetLabel(temptxt)
并且函数 fft_group_SINGLE_FFT_function.FFT1(x) 包含上面的 while 循环。如果问题没有意义,请道歉。如果它没有让我知道,我可以尝试用不同的方式解释。
谢谢。
解决方案
您可以尝试以下方法:
将标签本身 ( ) 或指向 ( )self.histstatusTXT
的函数指针作为附加(可能是可选的,如果此函数在别处使用)参数传递。这允许您在函数内设置标签文本。self.histstatusTXT.SetLabel
fft_group_SINGLE_FFT_function.FFT1()
FFT1
我将传递函数指针,因此该FFT1
函数将无法更改hisistatusTXT
标签的其他属性(除非您需要)。
推荐阅读
- firebase - 如何迭代数组?
- python-3.x - 给定两个日期,找出工作日的圣诞节天数
- python - 在 macOS Catalina 中,macOS python PDF 服务被拒绝访问
- javascript - 在视图 ASP.NET MVC 中从数据库到谷歌地图的多个地图标记问题
- angular - 如何访问离子中的联系人列表
- html - 多行
和
- python - 在 PySpark UDF 中使用广播值抛出“java.io.IOException:无法删除原始文件”
- php - Reactjs - axios 发布请求不起作用 - 找不到 404
- flutter - 限制 TextField 中允许的字符数
- javafx - JavaFx:在表格单元格内显示一个图标