AttributeError: 'MainWindow' object has no attribute 'onWindowTitleChange'

Heads up! You've already completed this tutorial.

Jomali_3945 | 2020-05-07 14:43:37 UTC | #1

While running your example, I get the error: AttributeError: 'MainWindow' object has no attribute 'onWindowTitleChange'

https://www.pythonguis.com/courses/start/signals-slots-events/


Wu_Yi | 2020-05-07 14:45:26 UTC | #2

I had the same problem, it seems that this signal is no longer available in the Qt QMainWindow class.


martin | 2020-05-10 09:41:25 UTC | #3

The onWindowTitleChange is a custom-defined slot (see the bottom of the example file) which you need to add yourself. The signal windowTitleChange is connected to this.

python
# SLOT: This accepts a string, e.g. the window title, and prints it
def onWindowTitleChange(self, s):
    print(s)

Wu_Yi | 2020-05-10 09:41:24 UTC | #4

Thanks, that makes sense.


tashasummers5448 | 2020-07-21 20:49:05 UTC | #5

I got the same error but my mistake was that I had copy/pasted the slots into the same indent level as the class MainWindow instead of the indent level of the def __init__. It worked once I moved them over.


Over 10,000 developers have bought Create GUI Applications with Python & Qt!
Create GUI Applications with Python & Qt5
Take a look

Downloadable ebook (PDF, ePub) & Complete Source code

Also available from Leanpub and Amazon Paperback

[[ discount.discount_pc ]]% OFF for the next [[ discount.duration ]] [[discount.description ]] with the code [[ discount.coupon_code ]]

Purchasing Power Parity

Developers in [[ country ]] get [[ discount.discount_pc ]]% OFF on all books & courses with code [[ discount.coupon_code ]]
Well done, you've finished this tutorial! Mark As Complete
[[ user.completed.length ]] completed [[ user.streak+1 ]] day streak

AttributeError: 'MainWindow' object has no attribute 'onWindowTitleChange' was written by Martin Fitzpatrick .

Martin Fitzpatrick has been developing Python/Qt apps for 8 years. Building desktop applications to make data-analysis tools more user-friendly, Python was the obvious choice. Starting with Tk, later moving to wxWidgets and finally adopting PyQt.