Alan , you are the only one on the internet who has tried to explain "program design". This was a great effort. I tried to write a real program. The program got so complex it just stopped working, I lost control of it. I still do not know how to design a large program. There is almost nothing on the internet about program design. I wish you would do more with program design. I tried to write a "flashcard" program. Thank You
Thanks Doug; program design can be a tough subject to get a handle on. Often it's very application specific, so it's hard to make instructional videos about it. I'll see if I can pull together some more coherent thoughts on the topic, though.
Great analogies. I’ve always avoided signals and slots because they seemed complicated and I never took the time to understand them. This video inspired me to start using them. Thanks!!
Still learning and was heading down the wrong path on an app I am working on. Reconfigured my GUI as suggeted and it now makes it way more clearer. Thx
Signals and slots and all the other object-oriented stuff may look overkill for toy applications but they are essential for building large scalable applications with loosely coupled components. That's a very important piece of advice. Thanks again. I think I am going to go grab that book of yours to learn in more depth.
Dude thank you for this. Lately Ive been trying to write using factories etc. but end up still tightly coupled in some ways. These examples and analogies really helped. Thanks again!
Thank you so much for making these. For me, this was easily the most important video in the playlist, as it addressed problems I was having when using Tkinter before embarking on learning Qt.
your content and delivery is perfect for my learnign style. Please continue! My goal is to become a python programmer (my previous career path was been derailed due to 2020)
Wait, what? "Too complex"? Yyyeah, I'm gonna go ahead and disagree with those people, mkay? In my view, too many books, tutorials, videos, etc. make things too *simple*. They'll demonstrate threading (for example) by connecting a button to a function and all the function does is a Thread.sleep(5000) type of thing. This series has so far given me the right amount of depth I need from an instructor and doesn't "talk down" to me.
Hey Alan, thank you for your work. I am wondering if there is a "Second Edition" of your book planed? Or if there is a place where one could get the latest version of it (if it is at all applicable).
What an informative video, thank you for your hard work sir. I have a question though. What happens when one has multiple ui files (from qt designer for example) and wants to bind all that together? (let's say for example I have one ui file for the main window you are using here and then a different ui file for the settings window you are using here)
Hey Alan, I have a question about your PyQt5 book (Mastering GUI Programming with Python) and I don't know how else to reach you. On page 186 you write about building a new category pop-up form for the calendar widget. Everything makes sense but I don't see any code to connect a signal that activates when the event_category combobox item is clicked. I ask this because I've been reading the Qt docs on how to do this, but it seems the closest available signal (textActivated) is not available in PyQt 5.9.2 Did I miss something? Thanks!
Hi man great series! I have a question regarding how to keep your code loosely coupled when signaling through multiple layers. My (motherboard) has a (component) with 3 distinct sections (subcomponents?) that I made into separate classes and called from the (component) If I want to connect a signal from the (motherboard) *to* a (subcomponent) of my (component): 1) Is it okay to directly connect the signal to a slot in the (subcomponent), or should I connect it to a slot in the (component) which then further instructs it's subcomponent? 2) For the other way around, for a signal from a (subcomponent), do I need to "catch and emit" the signal from the (component) before finally "catching" the signal in the (motherboard)? Any answers are greatly appreciated, as my beginner brain is hurting from trying to figure out how to properly "lose couple" my hierarchical code.
My reason for asking is that after making my distinct sections in a (component) into (subcomponents), it felt wrong to do either of these: 1) self.component.subcomponent.signal.connect(x) 2) self.component1.signal.connect(component2.subcomponent.slot) I can't try to justify (2) as you're directly instructing a subcomponent, but I'm not sure whether just receiving a signal from subcomponent might be okay or not. I'm a beginner and just trying to take your teachings into account, which is why the alert went off, but I just don't know if its warranted or not.
Like anything, decoupling can become excessive and over-complicate an application; still, I find value more and more in building a clear "employees only" boundary for components, beyond which the outside code may not enter. It means that when I work on that component, I can truly just work on that component and not have to be concerned with how that's going to impact code outside, so long as the interface remains stable. But that means building the infrastructure in your components to broker any interaction with its contents (so, signals that just pass on signals, or slots that just pass on slots). Is it worth doing? If your app is never destined to be more than half a dozen classes, maybe not. If it could become tens or hundreds of classes, well, it will likely save you a headache down the road when something needs changing or refactoring.
Hey alan, Just to let you know before i watch the full video, i think your "complex" way of coding should be the standard way of coding. Because my first languages were Java and C. I really prefer the strictness of java. (i am not from CS background nor a professional coder, just a normal guy who loves to do casual programming)
Great work on these tutorials!! Thank you for your time. Does your book include QwebengingView/Page? Hope to see more tutorials from you, you're a natural!
Thank you! There is a whole chapter dedicated to QWebEngine in the book. Hope to get more tutorials soon, just tied up with other projects this spring.
Alan , you are the only one on the internet who has tried to explain "program design". This was a great effort. I tried to write a real program. The program got so complex it just stopped working, I lost control of it. I still do not know how to design a large program. There is almost nothing on the internet about program design. I wish you would do more with program design. I tried to write a "flashcard" program. Thank You
Thanks Doug; program design can be a tough subject to get a handle on. Often it's very application specific, so it's hard to make instructional videos about it. I'll see if I can pull together some more coherent thoughts on the topic, though.
Well, the sibling analogy is helped me figure out something I have been struggling to solve. That's it. Thank you very much!
Thanks for these videos. I watched them all. They really eased my learning of PyQt which is 90% of my work these days.
Great analogies. I’ve always avoided signals and slots because they seemed complicated and I never took the time to understand them. This video inspired me to start using them. Thanks!!
Still learning and was heading down the wrong path on an app I am working on. Reconfigured my GUI as suggeted and it now makes it way more clearer. Thx
Signals and slots and all the other object-oriented stuff may look overkill for toy applications but they are essential for building large scalable applications with loosely coupled components. That's a very important piece of advice. Thanks again. I think I am going to go grab that book of yours to learn in more depth.
Just bought your book on the strength of the videos. Thank you!
Dude thank you for this. Lately Ive been trying to write using factories etc. but end up still tightly coupled in some ways. These examples and analogies really helped. Thanks again!
Thanks!
Thank you so much for making these. For me, this was easily the most important video in the playlist, as it addressed problems I was having when using Tkinter before embarking on learning Qt.
18:00 Man, this is such good advice. This whole video came along exactly when I needed it. Thank you!!
Thank you!
Hey Alan,
Thank you very much for your lessons! I've seen it twice
It was a pleasure listing your voice, experience & deep knowledge ❤️
After going through your book and other videos - this is exactly where I got stumped.
So glad you were able to make this video.
Another great video. Glad I watched the whole series. You made some complicated things very easy to understand.
Love all the analogies! great guide :)
Great series Don't stop
Heyyy!
Good to see you back 🙈
your content and delivery is perfect for my learnign style. Please continue! My goal is to become a python programmer
(my previous career path was been derailed due to 2020)
Thanks! Working on some ideas for my next few videos.
Wait, what? "Too complex"? Yyyeah, I'm gonna go ahead and disagree with those people, mkay? In my view, too many books, tutorials, videos, etc. make things too *simple*. They'll demonstrate threading (for example) by connecting a button to a function and all the function does is a Thread.sleep(5000) type of thing. This series has so far given me the right amount of depth I need from an instructor and doesn't "talk down" to me.
Thanks, I got your book and it is good but this video tied it up for me
Hey Alan, thank you for your work. I am wondering if there is a "Second Edition" of your book planed? Or if there is a place where one could get the latest version of it (if it is at all applicable).
Nothing planned yet, I'm basically waiting on PyQt6 to mature a bit. There's only one edition so far.
That's analogy about your children is very special ! This never happen here ! ;) :) :) ;)
Thanks :)
What an informative video, thank you for your hard work sir. I have a question though. What happens when one has multiple ui files (from qt designer for example) and wants to bind all that together? (let's say for example I have one ui file for the main window you are using here and then a different ui file for the settings window you are using here)
Hey Alan, I have a question about your PyQt5 book (Mastering GUI Programming with Python) and I don't know how else to reach you.
On page 186 you write about building a new category pop-up form for the calendar widget. Everything makes sense but I don't see any code to connect a signal that activates when the event_category combobox item is clicked.
I ask this because I've been reading the Qt docs on how to do this, but it seems the closest available signal (textActivated) is not available in PyQt 5.9.2
Did I miss something? Thanks!
lol... of course I think I figured it out right after posting. I found a signal called currentTextChanged which seems to do the trick!
Glad to hear it! If you think you've found an error in the book, please get in touch with Packt customer care, so they can publish an errata. Thanks!
Hi man great series! I have a question regarding how to keep your code loosely coupled when signaling through multiple layers.
My (motherboard) has a (component) with 3 distinct sections (subcomponents?) that I made into separate classes and called from the (component)
If I want to connect a signal from the (motherboard) *to* a (subcomponent) of my (component):
1) Is it okay to directly connect the signal to a slot in the (subcomponent),
or should I connect it to a slot in the (component) which then further instructs it's subcomponent?
2) For the other way around, for a signal from a (subcomponent), do I need to "catch and emit" the signal
from the (component) before finally "catching" the signal in the (motherboard)?
Any answers are greatly appreciated, as my beginner brain is hurting from trying to figure out how to properly "lose couple" my hierarchical code.
My reason for asking is that after making my distinct sections in a (component) into (subcomponents), it felt wrong to do either of these:
1) self.component.subcomponent.signal.connect(x)
2) self.component1.signal.connect(component2.subcomponent.slot)
I can't try to justify (2) as you're directly instructing a subcomponent, but I'm not sure whether just receiving a signal from subcomponent might be okay or not.
I'm a beginner and just trying to take your teachings into account, which is why the alert went off, but I just don't know if its warranted or not.
Like anything, decoupling can become excessive and over-complicate an application; still, I find value more and more in building a clear "employees only" boundary for components, beyond which the outside code may not enter. It means that when I work on that component, I can truly just work on that component and not have to be concerned with how that's going to impact code outside, so long as the interface remains stable. But that means building the infrastructure in your components to broker any interaction with its contents (so, signals that just pass on signals, or slots that just pass on slots).
Is it worth doing? If your app is never destined to be more than half a dozen classes, maybe not. If it could become tens or hundreds of classes, well, it will likely save you a headache down the road when something needs changing or refactoring.
19:00 Is it important for signals to be declared as class variables rather than created with each instance?
Yes, check out this answer here: forum.learnpyqt.com/t/why-are-signals-defined-as-class-variables/153
Hey alan, Just to let you know before i watch the full video, i think your "complex" way of coding should be the standard way of coding. Because my first languages were Java and C. I really prefer the strictness of java. (i am not from CS background nor a professional coder, just a normal guy who loves to do casual programming)
So basically, we we are mimicking LabView-style programming but with actual code
Great explanation though
Thank you for this wonderful tutorial...
😅 but feels like you were a java programmer before this...
Great work on these tutorials!! Thank you for your time. Does your book include QwebengingView/Page?
Hope to see more tutorials from you, you're a natural!
Thank you! There is a whole chapter dedicated to QWebEngine in the book. Hope to get more tutorials soon, just tied up with other projects this spring.
Unrelated to PyQt5 but what OS are you on?
Arch linux