python - 我正在尝试列出要在一周中的确切日期显示的内容
问题描述
所以我试图让它在 PySimpleGUI 中显示一个列表,但由于这个问题它不起作用“预期类型 'list[list[Element]]', got 'list[list[() -> None ]]' 而不是“错误是关于“sg.Column(asdf)”的。
另外,如何将文本放在下一行中,例如在记事本中单击 Enter?
import PySimpleGUI as sg
import requests
import datetime
current_time = datetime.datetime.now()
dzien = datetime.datetime.today().weekday()
data = datetime.date.today()
week_days=["Poniedziełek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela"]
pon = ["Historia", "Matematyka", "Niemiecki", "Chemia", "Fizyka"]
wt = ["Angelski", "Informatyka/PP", "Biologia", "Matematyka"]
sr = ["Angileski", "Fizyka", "Matematyka", "Polski", "Wychowawcza"]
czw = ["Nic/WOS", "WF", "Religia", "Geografia"]
pt = ["Matematyka", "Polski", "Fizyka"]
def lekcje():
if dzien == 0:
sg.Text(pon)
elif dzien == 1:
sg.Text(wt)
elif dzien == 2:
sg.Text(sr)
elif dzien == 3:
sg.Text(czw)
elif dzien == 4:
sg.Text(pt)
asdf = [[
lekcje
]]
layout = [[
sg.Column(asdf),
]]
window = sg.Window("Zegar", layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
window.close()
解决方案
在下面的语句中,它表明使用的元素asdf
是一个函数,而不是函数的结果,sg.Text()
。所以应该是[[lekcje()]]
asdf = [[lekcje]]
layout = [[sg.Column(asdf),]]
在函数中发现的另一个问题lekcje
,weekday 可能从 0 到 6,None
当 weekday 是 5 或 6 时它会返回。然后布局asdf
将是[[None]]
。所以它应该为案例 5 或 6 返回一些东西。
如果您想要显示的所有项目sg.Text
,这里是示例
import PySimpleGUI as sg
import requests
import datetime
current_time = datetime.datetime.now()
dzien = datetime.datetime.today().weekday()
data = datetime.date.today()
week_days = ["Poniedziełek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela"]
pon = ["Historia", "Matematyka", "Niemiecki", "Chemia", "Fizyka"]
wt = ["Angelski", "Informatyka/PP", "Biologia", "Matematyka"]
sr = ["Angileski", "Fizyka", "Matematyka", "Polski", "Wychowawcza"]
czw = ["Nic/WOS", "WF", "Religia", "Geografia"]
pt = ["Matematyka", "Polski", "Fizyka"]
week_subject = {0:pon, 1:wt, 2:sr, 3:czw, 4:pt}
width = max(map(lambda x:max(map(len, x)), week_subject.values()))
height = max(map(len, week_subject.values()))
def lekcje(dzien, size):
text = '\n'.join(week_subject[dzien]) if dzien < 5 else ''
return sg.Text(text, size=size)
sg.theme('DarkBlue')
sg.set_options(font=('Couier New', 16))
asdf = [[lekcje(dzien, (width, height))]]
layout = [[sg.Column(asdf)]]
window = sg.Window("Zegar", layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
window.close()
推荐阅读
- laravel-5 - Laravel 队列无法将类对象转换为字符串
- pixelsense - 如何为 Pixelsense(三星 SUR40)打印字节标签?
- python - 将数据与特定 x 范围整合
- c - 无法存储 libcurl 结果。(输出空文件或不写入内存)
- android-emulator - 从另一台机器进行 RDP 时,Android 模拟器在主机上崩溃
- flutter - 如何使用 dart 从 android 设备中获取 .mp3 文件?
- android - 调试时找不到局部变量
- r - R flextable 如何在新的浏览器选项卡中打开超链接
- iphone - Xcode - 如何获得 iPhone 11 模拟器进行开发?
- c++ - 从朋友类继承时无法使用大括号括起来的初始化列表