'cos main window destructor will be called on program quit, so it isn't a memory leak
It is a memory leak, but you can rely on the fact that the operating system will release the resources (at least the memory) used by your process when the process terminates - even if the process itself does not take actions to actively do this.
That may not be the case, though, when other kinds of resources need to be released, like file handles or network connections. More generally, when other kinds of responsibility are not fulfilled by a program or module that has those responsibilities.
Not leaking memory is a responsibility of your program, and it is good to practice programming in a way that the modules you write will fulfill their responsibilities. The tools and idioms used for this purpose are general enough to justify practicing their usage whenever this makes sense. For instance, the RAII idiom (Resource Acquisition Is Initialization) is fundamental in this respect, and it can be applied to your example as well - use a smart pointer.
Although in the particular example you are mentioning your memory leak is not going to be a huge problem (memory consumption won't keep growing as your program is running, because we're talking about one object), there is no real reason for keeping it there.