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.

Create GUI Applications with Python & Qt5 by Martin Fitzpatrick — (PyQt5 Edition) The hands-on guide to making apps with Python — Over 10,000 copies sold!

More info Get the book

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.

PyQt/PySide 1:1 Coaching with Martin Fitzpatrick — Get one on one help with your Python GUI projects. Working together with you I'll identify issues and suggest fixes, from bugs and usability to architecture and maintainability.

Book Now 60 mins ($195)


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 & Qt6
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
Martin Fitzpatrick

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. Martin founded PythonGUIs to provide easy to follow GUI programming tutorials to the Python community. He has written a number of popular https://www.martinfitzpatrick.com/browse/books/ on the subject.