Python tkinter GUI - change default icon: Windows vs. Linux

I'm learning Python at the moment... and as part of that I've been looking at creating platform-independent applications.

The first step, I figured, was to get a basic window operating cross-platform.  I did this, no problem.  I did some reading on tkinter, which seems pretty straight forward (apart from being Tkinter in Python 2.x and tkinter in Python 3.x - note the case change - pretty annoying for converting apps from the old version).  So that was all good anyway.

Then I wanted to change the default icon in the top left corner - and found the answer in Windows pretty quickly:


I then moved the app over to Ubuntu and changed the icon location to suit the local directory the script was in, and made sure the icon was there... This should just work - shouldn't it? 

It doesn't. 

Nor does changing it to a .BMP or a .icon.  In the end I found a reference to making it a .XBM and putting an '@' in front of the filename to get it to work.  Which I did - converting it in Gimp and adding the prefix in the code. 

Why?  I don't know... its annoying that the two platforms can't just use the same syntax for what seems a simple operation.

Not so much a how-to as a my-2 cents...