Tkinter 条目是空的,但如果程序说它不是
Tkinter entry is empty but if program says it is not
我正在 Python 中编写与音乐相关的 GUI,但我的脚本中有关曲目的部分无法正常工作。
我有一些曲目发行日期和录制日期的输入框,我想检查它们是否为空。
我的代码如下:
if self.active_tab == 'Tracks':
print(f'Release = {self.dateReleaseEntry.get()}, Recording = {self.dateRecordEntry.get()}')
if self.dateReleaseEntry.get() or self.dateRecordEntry.get() == '':
print('One of the dates is empty, setting missing date to true.')
self.missingDate = True
print(self.missingDate)
if self.missingDate:
self.alert_window = Toplevel()
self.alert_window.title('Alert')
self.alert_window.geometry('200x100+0+0')
第一个打印语句的结果是“Release = , Recording = 2007-05-22 14:00:00”。这告诉我 'self.dateReleaseEntry.get()' 的值是 '' 或者换句话说,一个空字符串。然而,第二个 print 语句从未被调用,告诉我程序不同意我。
我试过其他检测entry是否为空的方法(比如len(entry) == 0 and entry == 'None'/None)。不幸的是我没有运气。有人可以告诉我是 tkinter 还是我愚蠢吗(老实说,我不介意)。
谢谢,
J
您似乎只是错过了检查它是否为空字符串的检查,self.dateReleaseEntry.get() == ''
。空字符串在 Python 中被视为 False
。这就是为什么原始代码不起作用的原因。
if self.active_tab == 'Tracks':
print(f'Release = {self.dateReleaseEntry.get()}, Recording = {self.dateRecordEntry.get()}')
if self.dateReleaseEntry.get() == '' or self.dateRecordEntry.get() == '':
print('One of the dates is empty, setting missing date to true.')
self.missingDate = True
print(self.missingDate)
我不知道情况是否如此,但一个常见的误解是行 if self.dateReleaseEntry.get() or self.dateRecordEntry.get() == ''
将检查这些值中的任何一个是否为空字符串。
我正在 Python 中编写与音乐相关的 GUI,但我的脚本中有关曲目的部分无法正常工作。
我有一些曲目发行日期和录制日期的输入框,我想检查它们是否为空。
我的代码如下:
if self.active_tab == 'Tracks':
print(f'Release = {self.dateReleaseEntry.get()}, Recording = {self.dateRecordEntry.get()}')
if self.dateReleaseEntry.get() or self.dateRecordEntry.get() == '':
print('One of the dates is empty, setting missing date to true.')
self.missingDate = True
print(self.missingDate)
if self.missingDate:
self.alert_window = Toplevel()
self.alert_window.title('Alert')
self.alert_window.geometry('200x100+0+0')
第一个打印语句的结果是“Release = , Recording = 2007-05-22 14:00:00”。这告诉我 'self.dateReleaseEntry.get()' 的值是 '' 或者换句话说,一个空字符串。然而,第二个 print 语句从未被调用,告诉我程序不同意我。
我试过其他检测entry是否为空的方法(比如len(entry) == 0 and entry == 'None'/None)。不幸的是我没有运气。有人可以告诉我是 tkinter 还是我愚蠢吗(老实说,我不介意)。
谢谢, J
您似乎只是错过了检查它是否为空字符串的检查,self.dateReleaseEntry.get() == ''
。空字符串在 Python 中被视为 False
。这就是为什么原始代码不起作用的原因。
if self.active_tab == 'Tracks':
print(f'Release = {self.dateReleaseEntry.get()}, Recording = {self.dateRecordEntry.get()}')
if self.dateReleaseEntry.get() == '' or self.dateRecordEntry.get() == '':
print('One of the dates is empty, setting missing date to true.')
self.missingDate = True
print(self.missingDate)
我不知道情况是否如此,但一个常见的误解是行 if self.dateReleaseEntry.get() or self.dateRecordEntry.get() == ''
将检查这些值中的任何一个是否为空字符串。