我有一个带有日期选择器控件的对话框。在日期选择器中按 Enter 键将关闭对话框(如预期)。然而,日期选择器不会选取用户在 wxGTK 上输入的值。运行附加的示例,单击按钮,使用键盘在日期选择器中输入新日期,然后按 Enter 键。打印语句显示日期选择器的先前值,而不是刚刚输入的值。
在 wxMSW 上它按预期工作。在这两种情况下都使用 wxPython 2.8.10.1。
有什么想法吗?解决方法?
谢谢,弗兰克
import wx
class Dialog(wx.Dialog):
def __init__(self, *args, **kwargs):
super(Dialog, self).__init__(*args, **kwargs)
self.datepicker = wx.DatePickerCtrl(self)
self.button = wx.Button(self, label='OK')
self.button.SetDefault()
self.button.Bind(wx.EVT_BUTTON, self.onButton)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.datepicker)
sizer.Add(self.button)
self.SetSizerAndFit(sizer)
def onButton(self, event):
print self.datepicker.GetValue()
self.Close()
class Frame(wx.Frame):
def __init__(self, *args, **kwargs):
super(Frame, self).__init__(*args, **kwargs)
self.button = wx.Button(self, label='Press me to open dialog')
self.button.Bind(wx.EVT_BUTTON, self.onButton)
def onButton(self, event):
dialog = Dialog(self, size=(200,30))
dialog.Show()
app = wx.App()
frame = Frame(None, size=(200,50))
frame.Show()
app.MainLoop()
最佳答案
我也遇到了类似的问题。在使用 datepicker.GetValue()
从 DatePickerCtrl 检索日期之前,我尝试每次都调用 datepicker.Navigate()
。看起来很有效。
关于python - 对话框中的 wx.DatePickerCtrl 忽略在 wxGTK 上按回车键后输入的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1568491/