【问题标题】:Python - PySimpleGUI - Can't select Calendar InputPython - PySimpleGUI - 无法选择日历输入
【发布时间】:2020-11-08 12:23:01
【问题描述】:

我正在制作一个非常简单的界面,只需要三个字段。 第一个是用于介绍团队名称的文本输入,第二个用于选择我的团队名称,第三个是用于介绍日期的日历输入。

为此,我使用以下代码:

import PySimpleGUI as sg

layout = [[sg.Text('Interface', key='-TXT-')]
      , [sg.Text('Team ID', size=(15, 1)), sg.InputText(size=(45, 1), key='-team_value-')]
      , [sg.Text('Team Name', size=(15, 1),), sg.InputText(size=(45, 1), key='-team_name_value-')]
      , [sg.Input(key='-IN4-', size=(20,1)), sg.CalendarButton('Calendar',  target='-IN4-', default_date_m_d_y=(1,None,2020), )]
      , [sg.Button('Introduce'), sg.Button('Search'), sg.Button('End'), sg.Button('Date Popup'), sg.Button('Cancel')]]

window = sg.Window('window', layout)

text_elem = window['-TXT-']

while True:
    event, values = window.read()
    print(event, values)
    if event in (sg.WIN_CLOSED, 'Cancel'):
        break
    elif event == 'Date Popup':
        sg.popup('You chose:', sg.popup_get_date())

window.close()

但是,当我打开日历日期时,我无法选择任何日期,它只会打开日历并保持静态,并且不允许我选择任何日期。

我做错了什么?

谢谢

【问题讨论】:

  • 更新到最新版本的 PySimpleGUI,如有必要,还可以通过sg.main() 从 GitHub 升级 PySimpleGUI。
  • 在 PySimpleGUI v4.34.0 中有同样的问题

标签: python calendar pysimplegui


【解决方案1】:

我遇到了同样的问题。解决方案是不使用默认主题。在您的“布局”声明上方设置一个新主题:

sg.theme("Dark Blue 3")
layout = [...]

您也可以创建自己的主题。日历使用“TEXT”颜色为日期数字着色并突出显示日历的第一行。

my_new_theme = {'BACKGROUND': '#ececec',
                'TEXT': 'black',
                'INPUT': 'white',
                'TEXT_INPUT': 'black',
                'SCROLL': 'white',
                'BUTTON': ('black', 'white'),
                'PROGRESS': ('#0091ff', '#D0D0D0'),
                'BORDER': 1,
                'SLIDER_DEPTH': 0,
                'PROGRESS_DEPTH': 0}

sg.theme_add_new('my_custom_theme', my_new_theme)
sg.theme('my_custom_theme')
layout = [...]

【讨论】:

  • 默认主题不是造成这种情况的原因。
  • @MikefromPSG 有同样的问题,改变主题确实有帮助。只有当我使用 PyInstaller 构建可执行文件时才会出现问题。从终端运行程序时,日历可以在默认主题下正常工作。
  • 对于偶然发现这个答案的人,这个问题有一个线程github.com/PySimpleGUI/PySimpleGUI/issues/3372
猜你喜欢
  • 2017-12-29
  • 1970-01-01
  • 1970-01-01
  • 2022-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-16
相关资源
最近更新 更多