I have been a python programmer 7+ years now, and been designing with PyQt for 3+ years... But I am not a classically trained Comp Sci. major. More recently I have been learning Go and been actively following the Golang-nuts discussion list which is filled with extremely intelligent developers. From this discussion group, I have seen many references to software design patterns, such as Observer, Reactor, etc. Again because I am not a CS major, I never really learned all of this terminology and theory, but it made me wonder...
What design patterns do common GUI frameworks like Qt, wx, GTK exhibit?
I have a feeling like its a mixture of patterns for different components, such as the event loop vs signal/slots or binding vs Key-value observing, and so on. I would love to hear an explanation or generalization about how these software patterns map to the traditional components of these frameworks.
As a bit of a secondary element to this question: Are there GUI frameworks that try and take a completely different pattern approach to a GUI solution? Does Cocoa/objective-c use the same event loop patterns as these others?
Update
To help narrow down the focus of my question, and based on the answer by @HDDimon, I am mainly wondering about Behavior Patterns (communication):
http://en.wikipedia.org/wiki/Design_Patterns#Behavioral_patterns