Python `iconbitmap`方法返回空字符串

Python `iconbitmap`方法返回空字符串,python,unit-testing,tkinter,Python,Unit Testing,Tkinter,我有一个应用程序: class App(tk.Tk): def __init__(self): super().__init__() # Set app title self.app_title = 'Visual Python' self.title(self.app_title) # Set app icon self.iconbitmap('icon.ico') 还有一个测试: cla

我有一个应用程序:

class App(tk.Tk):
    def __init__(self):
        super().__init__()
        # Set app title
        self.app_title = 'Visual Python'
        self.title(self.app_title)
        # Set app icon
        self.iconbitmap('icon.ico')
还有一个测试:

class TestApp(unittest.TestCase):
    def setUp(self):
        self.app = App()

    def test_app_title(self):
        self.assertEqual(self.app.title(), 'Visual Python')

    def test_app_icon(self):
        self.assertEqual(self.app.iconbitmap(), 'icon.ico')
当我使用
py-3-m unittest
运行测试时,我得到以下输出:

F.
======================================================================
FAIL: test_app_icon (test.test_app.TestApp)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\ismailarilik\visual-python\test\test_app.py", line 12, in 
test_app_icon
    self.assertEqual(self.app.iconbitmap(), 'icon.ico')
AssertionError: '' != 'icon.ico'
+ icon.ico

----------------------------------------------------------------------
Ran 2 tests in 0.279s

FAILED (failures=1)
为什么这里的
iconbitmap
方法返回空字符串而不是给定的
'icon.ico'
字符串?

:

如果为位图指定了空字符串,则任何当前图标 窗口的位图被取消。如果指定了位图,则 命令返回一个空字符串。否则,它将返回 与窗口关联的当前图标位图,或空字符串,如果 窗口没有图标位图


我认为你的情况属于最后一个用黑体字突出显示的案例。我的意思是,您必须确保图标已设置,具体取决于您的平台

我使用Windows,可以看到标题左侧的图标。这是否意味着图标设置正确?如果您在GUI上直观地看到图标,请确保它设置正确。我无法在我的Linux机器上重现您的问题(最好提供一个示例,因为我认为应该对您的代码进行更多的调查,以了解问题所在)。我在我的应用程序中使用了此图标:我认为您可以使用此信息重现问题。但是当我阅读讨论时,Tkinter在GNU/Linux环境中不支持.ico映像,我在Windows7、Python 3.6.5上也看到了同样的情况。图标设置正确,但
iconbitmap()
返回空字符串。