python - 对话框中的 wx.DatePickerCtrl 忽略在 wxGTK 上按回车键后输入的值

标签 python wxpython

我有一个带有日期选择器控件的对话框。在日期选择器中按 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/

相关文章:

python - 播放视频后,OpenCV/Python崩溃

python - 添加带条件着色的水平线

python - Windows(XP到Windows 7)用python播放音频?

python - 如何使用 Python 创建 Mac OS X 应用程序?

user-interface - 在 pygame 中添加 wxpython

python - 如何添加wx.BoxSizer边框?

python - 连接 Eclipse、tkinter、Swampy 和 TurtleWorld 时遇到问题

Python/Flask 访问两个方法之间的变量

python - Unicode latin1 字符串编码/解码

event-handling - 防止 wxPython 事件命中多个窗口?