wxPython中SpinCtrlDouble控件浮点数显示异常问题求助
wxPython SpinCtrlDouble 小数位数大于2时显示异常问题
使用wxPython开发仪器控制GUI,在搭建字段与控件时,用SpinCtrlDouble控件定义需至少保留3位小数的频率和振幅。发现当调用SetDigits()设置小数位数大于2时,控件内的浮点数显示异常:文本被选中且偏移,无法查看前几位数字(例如应显示21.62100,但看不到“21”)。已尝试用wx.TE_RIGHT设置文本对齐、扩大控件跨度,问题仍未解决。
运行环境
- 操作系统:Win10
- Python版本:3.11.5、3.9.21、3.13.4
- wxPython版本:4.2.3
- IDE:VS Code
问题代码
import wx class Mywin(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title = 'Hello') # main panel window panel = wx.Panel(self) # main vbox vbox = wx.BoxSizer(wx.VERTICAL) # vbox.SetMinSize(self,(600,800)) # StaticBoxSizer for Keithley controls BoxKeithleySizer = wx.StaticBoxSizer(wx.VERTICAL, panel, 'Keithley :') # StaticBox with edge and title BoxKeithleyGrid = wx.GridBagSizer(hgap=5, vgap=5) # add widgets to this toto = BoxKeithleySizer.GetStaticBox() toto.SetBackgroundColour((255, 201, 201)) # set background color of the StaticBox # widgets to go in the StaticBoxSizer for Keithley controls TextKeithleyFreq = wx.StaticText(BoxKeithleySizer.GetStaticBox(), -1, "Freq.") BoxKeithleyFreq = wx.SpinCtrlDouble(BoxKeithleySizer.GetStaticBox(), -1) UnitKeithleyFreq = wx.StaticText(BoxKeithleySizer.GetStaticBox(), -1, "MHz") BoxKeithleyFreq.SetDigits(5) BoxKeithleyFreq.SetIncrement(0.001) BoxKeithleyFreq.SetMin(21.600) BoxKeithleyFreq.SetMax(21.650) BoxKeithleyFreq.SetValue(21.621) # add widgets to the StaticBoxSizer for Keithley controls BoxKeithleyGrid.Add(TextKeithleyFreq, pos=(0,0), flag = wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL) BoxKeithleyGrid.Add(BoxKeithleyFreq, pos=(0,1), span=(1,5), flag = wx.EXPAND | wx.ALIGN_CENTER_VERTICAL) BoxKeithleyGrid.Add(UnitKeithleyFreq, pos=(0,6), flag = wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL) BoxKeithleySizer.Add(BoxKeithleyGrid) # add Sizers to main vbox and panel vbox.Add(BoxKeithleySizer,0, wx.ALL|wx.LEFT, 5) panel.SetSizer(vbox) class MyApp(wx.App): def OnInit(self): frame = Mywin() frame.Show() self.SetTopWindow(frame) return True def main(): app = MyApp(redirect=False) app.MainLoop() if __name__ == "__main__" : main()
内容的提问来源于stack exchange,提问作者Aldehyde
相关产品推荐
相关产品推荐

