Thanks so much for all this precious info. I've just started to write my own GUI using tkinter, and what you just said is true. At first, very easy to use, but as you get into all those details of keeping your code clean, how to pass data, and how to create more advanced widgets, it becomes way harder. I think it's a good advice for beginners to jump into tkinter first, then perhaps transition slowly to PyQt once you've understood the foundation of classes in Python. I'll do my studies on PyQt too, thanks.
I really enjoyed this format for your video. Code tutorials are great and needed but talking about systems and experiences is really lacking on YT. Thanks for sharing your knowledge.
Fantastic video. I watched through your entire video series on PyQt and bought your book, of which you are STILL the author (last time I checked). You're the only one out here I've seen so far that demonstrates deep understanding and communicates it well. Thanks Alan!
@@alandmoorecodes3585 I'm getting an incredible amount. As a sales guy myself, I appreciate that you sold me on it with the PyQt video series! I think you'll be very successful if you keep going on this stuff.
Really enjoyed this talk, I bought your QT book after hearing your intuitive explainations in your previous QT videos which i hope continue. I am learning Qt along side OpenCv and hope to splice the two together. The current hurdle is the Model View chapter, it seems like having to sub class is some sort of hack, but gather from your talk this is the standard way to proceed. I find it daunting , the process of seeing what I would need to sub class, but no-one got good by giving up.
Thanks! OOP can be pretty jarring for a lot of Python programmers, but we have to remember that Qt comes from the C++ world where it's just de rigueur. Once you get accustomed to it (and I know what you mean about figuring out what to override -- that becomes 80% of the battle with OOP frameworks), it can lead to some very elegant code.
What a wonderful talk. Thank you. I am a hard core R guy, but need to fire up some gui on linux and needed a quick overview of what is there. This was very educative.
Thanks for this video! It is very informative! I couldn't relate more when you mentioned that thing about QT Docs being mostly in C++, and all things requiring a wrapper class like QColor, etc. I had to learn the "ways" of PyQT on my own and help from YT and StackOverflow. Your comment of "mentally convert C++ to python, but you get a knack for it." really hits hard. Sums my whole year up. Cheers!
I thought I was going insane with searching a decent Tkinter documentation while running into incomplete ones or sites that were down and/or constantly down. Thanks for pointing it out!
Kind of combining both other comments here.. A high level talk on developing/publishing/distributing/pushing updates to an application, if it's something you'd spend a 'kids in bed gonna do a talk on UA-cam' type evening at, would be really interesting (to me at least). Really enjoyed this, and will probably listen to it again before I build a GUI for a small thing I'm working on.
3:37 I'm fairly new to GUI programming and a complete amateur, but I thought I'd mention this since I haven't seen anybody else say anything about it. Anki is built with PyQt (and has the custom aqt API which is based on PyQt) and it works on mobile. I don't know if that counts? The whole reason I got into GUI programming was because I was developing an add-on for Anki.
i am a web born guy, php,html,js,css, so i am learning python and discover is a powerful language, so maybe i will learn pyside6 and some html wrapped for gui, the big advantage to build electron style app is HTML is free! greats videos, and regards
Great video. The first time i started using tkingter i absolutely hated the way elements can be sized. Like the buttons size is measured in characters instead of pixels or percentage. I just cant see the logic in that.
Great honest video with no animosity, just what each is capable of so that we can decide for ourselves which one is best to use in each situation. Thanks! Also you book "GUI Programming With Python" is great for learning, very informative.
Thankful the YT Algo threw this up on my homepage. Subscribing to packt and diving into your Tkinter book Alan. I've some experience "using" objects but none yet creating my own. I've studied Python basics with Dr. Severance out of Michigan U, discovered the magic of SQLite recently and I'm going to utilize Tkinter for my front end to projects. I've read through the description of your book and it's spot on what I need to move forward in my efforts. I like your style Mr. Moore. You've got a new fan. Thank you.
@@atlantic_love UA-cam Algorithm - The thing that monitors what you are watching and populates your home page with like minded content. You know, the very same thing that causes a knowledge silo and keeps the left left and the right right . But in this case, brings us technologists the things we love to dig into...
@@atlantic_love LOL, yeah, it’s late, I’ve been “working” since 6am and it was me being humorous. No other reason, no agenda, and certainly not a desire to argue for either side. I guess, pausing to think about it for a second, I consider myself no part of it? Aka, why I like tech, and making stuff. Never had a taste for politics. I like, generally, the YT algo but I’m guessing that’s because my pages are full of science tech stuff? So anyway, no intention there at all. Just me being tired and a smartass.
I did a few Tkinter applications and I wasn't happy with it. After my researches I end up with PyQt and build two applications with it. And I love it. PyQt and never go back to Tkinter. But what I really dislike is that distributing with PyQt sucks.
@@alandmoorecodes3585 That is another story, but I am more an open source guy, so the licensing isn't that of an issue. No, I mean if I distribute it as a package with pyinstaller and similar tools, the files get quite big. And creating distribution files for other platforms is another issue. Having it builtin like Tkinter solves all these problems.
From what I understand, PyQt has better appearance & more modern because of being able to use CSS to generate buttons, labels, textbooks, etc.. The Qt layouts enable you to build apps that will fit any screen device (hbox, vbox, etc.) You'd then get the program converted to files for Android, iPhone or for any of the mobile devices.
I was thinking to start this search and want to move forward with my previous knowledge about c++/c# and want o learn python but hard time schedule put me back but your this explanation and GUI motivated me to learn effectively and faster than I thought. Thanks for the video and books Stay blessed
"Let's talk it out...". I'm glad you did. Direct, simple, honest, no frill, no airs and graces. By 19:11 I was talking back to you (Zoom-fatigue) and asking additional questions. I love your content, I love your approach, I love your style......LIKED, SHARED, SUBSCRIBED....SIMPLES.
I really identified with the developer experience part of using tk, very easy at first but it's not long before you have to start rolling your own functionality (or searching for third party widgets). I've used quite a few GUI frameworks and libraries on other languages so it's a bit jarring when something I expect is missing. Thanks for the comparison, i'll try PyQT next.
Thanks for the video, definitely agree on the frustration with tkinter. You can't even color a single cell in a ttk.TreeView or edit something in a cell, those things are included automatically in Qt tables. But the missing scrolling behaviour on expanding frames is probably the worst thing I encountered.
I’ve done a lot of cocoa and cocoa touch with Xcode on macOS when I was younger, so I think for me getting into PyQt / PySide was fairly easy, I think those two frameworks are kinda working similarly
The craziest thing I saw developed in TCL/TK is a MSN Messenger clone for unix. I tested it in Linux and Sparc Solaris early 2000s. It worked perfectly, and graphically was a 100% clone with the original one.
Man, thank you very much for that introduction/overview on GUI programming with Python. I just stepped into GUI programming, and was kind of lost starting with PyQt because I m not used to not have all the documentation for objects. Now I know where to look for (PySide and Qt C documentation). Great overview really, and concerning your book on PyQt, how relevant it is with the last release PyQt6 ? I may want to get one of these.
Thanks! The book is still relevant; PyQt6 has made a few minor changes, such as scoping enums and removing the qresource system. See www.riverbankcomputing.com/static/Docs/PyQt6/pyqt5_differences.html for a full list, it's not much. I hope to do a PyQt6 book at some point, but the API is still in flux and a lot of modules I covered in the book aren't supported just yet.
@@alandmoorecodes3585 Thank you for your answer. Now another question came to my mind, should I start with PyQt6 or wait for those unsupported modules to be implemented and use PyQt5 in the meantime?
@@tom_p6430 I think it depends on the timeframe of your goals. PyQt6 is going to be adding back support for features, hammering out bugs, and making potentially breaking changes for at least another release, possibly two. PyQt5 is mature now, and as of yet I can't think of a compelling new feature in 6 that would induce me to choose it until it's ready for prime time. If you want to deliver a working application in the next 6 months, I'd stick to PyQt5. If it's more like a couple of years, start with PyQt6. In either case, it shouldn't take much adjustment to update.
I started with Tkinter because of that bothersome "I don't want to mess with any C++ bindings" nonsense for a small-ish project. After some time, the project got massive and I was having problem transporting data from windows to threads to a camera and it got a bit too much. I had a really hard time finding "real projects" with tkinter because it seems like it is a "get your feet wet" kind of GUI. Since I don't really care about modernity and I just locked resizing the windows. Great info!
Also -- size, I have always been mindful of memory restrictions because I started doing embedded firmware on microcontrollers, and also I work with a remote office in China who have problems getting proper Python mirrors, thus as standard install as I can be, the better.
PySide doesn't need a commercial license. I'd say go for PySide ALWAYS with qt designer. Much easier than tkinter (unless you use custom tkinter or something).
16:00 I'm not an expert nor old enough to understand these concepts, but say you use only 3 classes from a library in an app out of 20 or 1000 as you said. Rhe compilation time/code size won't increase, but the attached library would. In tkinter it won't matter as it's embedded in Python, but for pyQt and the rest, can you extract only the needed codes from a library, assuming they're not accessed or checked for in the code or compiled part/whatever? In other words, I know tkinter but not pyQt, when I make a GUI app, using only frame, button and text field, can I ship only those classes, and whatever they require, from the pyQt library? Is that considered an adaptation of the library, hence copy right issues? Is it at technically possible (as in a company making an app as small as possible after licencing it from pyQt owners? I'm making a GUI app and developing it continuously, so I'm not sure if the style points is worth it compared to tkinter.
Hi. If you don’t mind, since you’ve wrote a book about it, please answer this question; how do you change title bar colour? Can’t find the solution for pyqt6 and tainted. For python project. Been searching for days. Any help is appreciated.
Great video Mr. Moore! Do you have any experience with JavaFX? And if so, how would you rate it in a heads up comparison to PyQt? I kinda got the vibe from this video that the look and feel of Tkinter is much like that of the older Java swing class. Java swing, imo, looks somewhat old & dated. Would Tkinter be similarl to Java swing? Thanks again, really good tutorial.😁
I'm afraid I haven't touched Java in a loooooooong time, so my opinions on it would not be very valuable. I did work with swing a little back in the mid '00s, and it is somewhat reminiscent of Tkinter, at least in appearance. I can't recall much about the actual workflow or code design.
Hello Alan - I've enjoyed and learned a bunch of great stuff from your videos. I think you're the best Python teacher on the internet. I'd like to tell you something I just ran into concerning tkinter. Have you heard of, or have thoughts on tk_tools? I stumbled upon something called tk_tools.SmartOptionMenu and it looks promising to me (a newbie to Python, but a COBOL and Uniface programmer for about 35 years). I've written my first Python program for my own use which I am very proud of (yet another UA-cam downloader) - But chock full of globals. Could you look into tk_tools and perhaps do a video on it's use? It seems to have a lot of GUI widgets that augment and surpass tkinter's widgets. I'm mostly interested in the one I mentioned earlier. Thanks for the great content and I look forward for more. I am a linux (MX-Linux) devotee.
@@alandmoorecodes3585 Thanks for responding! That tells me you care about your audience. Much respect! I did some experiments with tk_tools.SmartOptionMenu and found that I could not get the initial value back and I don't know why. It seems a combobox would do me better in that regard.
I just tried tkinter and it's just too time consuming to deal with coding all the frames and grids and having things not work how you want. Hoping PyQt is easier to work with.
Neither of them are that great. They've been ported over and kind of left for dead. The future looks even more bleak when people recommend crippled and mostly useless frameworks like "PySimpleGui" and "PyGame". LOL.
@@atlantic_love What's a good choice for GUIs then if the webstack is just yucky (html, css, javascript). Not even talking about language choices here but frameworks and toolkits so stuff like "C++" isn't even an answer since that's not a GUI.
@@atlantic_love Not saying you're wrong but I do want to hear what's a better choice then... There are tons of GUI toolkits to choose from so it's not an easy question or answer imho
Sorry, I can understand the frustration; I guess this video was aimed at a person in a different place. If you're a beginner, I think the best thing is not to worry about what's "best" and just find something that clicks with you. Part of the reason we have all these languages and frameworks is because different people want to approach the same problems from whatever way makes sense to them. Find something that makes sense to you and just go with it.
Title question is such an easy answer, and I don't even need to watch the video. PyQt5 over tkinter. When converting your program to an exe, tkinter doesn't work. PyQt5 works great.
I wish I saw your video 5 years ago! After spending too much time looking on the web I ended up with the right choice (Tkinter). Now maybe I should switch over to PyQt or PySide. Degrading docs and maintenance(?) means Tkinter's days are numbered?
Tkinter's demise has been predicted for decades, but it hangs in there. I think until there is a lightweight, not overly complicated, license-compatible option to replace it, Tkinter will continue to be bundled with Python. If that ever ends it will fade to obscurity most likely, but until then a lot will choose it for those reasons.
QMediaPlayer loads QMediaContent objects and plays them back via a QVideoOutput widget. The QMediaContent can take various arguments to point it to media content, including a QUrl. The problem, though, is that the URL has to point to a video file, not an HTML page. If downloaded the UA-cam link and found some way to scrape it for the actual video link, you might be able to give that to QUrl, though I don't know if it would actually stream or just download the whole thing before playing back (or if it would work at all). Check out the youtube-dl project for some code that might help you do that. A solution of this kind is bound to be brittle, though; a change in the youtube site code could break it. If you want to embed a UA-cam video in your application, you're probably better off just putting a QWebEngineView widget and pointing it to the video's embed URL.
You need the correct version compiled for your version of python. If you install with pip this should happen automatically. I'm afraid I don't know much about installing with pycharm.
Video was helpful for me. I would like to know about the speeds of both Applications. Which library has good speed response after converting to .exe? I have been using tkinter from one year but i am now confused which library should be chosen for my professional career of app developer? Any suggestions will be helpful
Tkinter is smaller, though it calls back to another interpreted language. Qt is huge, but it calls back to compiled C++ binaries. Which one is faster? I honestly couldn't say. If I had to make an answer, I'd say 95% of the time it won't matter on modern hardware. The bigger problem is going to be in designing your application in a way that it doesn't freeze up or do unnecessary things. I don't think you should be of a mindset to pick a library for your career. You will, in all likelihood, be asked to use many different toolkits throughout the course of a career, including many that don't exist yet. The important thing is to understand how to learn a new toolkit and work with it well. Everything you learn will build on everything else, it is never wasted.
00:00 00. Introduction
02:10 01. Similarities
02:50 02. License
06:00 03. Looks
09:16 04. Language Impact
14:03 05. Size
17:00 06. Documentation
20:21 07. Data features
22:02 08. Widgets
24:11 09. Developer experience
30:45 10. Which one?
Thanks so much for all this precious info. I've just started to write my own GUI using tkinter, and what you just said is true. At first, very easy to use, but as you get into all those details of keeping your code clean, how to pass data, and how to create more advanced widgets, it becomes way harder. I think it's a good advice for beginners to jump into tkinter first, then perhaps transition slowly to PyQt once you've understood the foundation of classes in Python. I'll do my studies on PyQt too, thanks.
The greatest advantage of PyQt IMHO is the ability to create a GUI with QT Creator/Designer. HUGE time saver.
So true! QT Designer makes Frontend a lot easier when you can port the code
My easy choice was PyQT... due to the Designer.
This was a great video. I would really enjoy hearing more of these high-level talks on python/gui programming.
Thanks!
I really enjoyed this format for your video. Code tutorials are great and needed but talking about systems and experiences is really lacking on YT. Thanks for sharing your knowledge.
Thanks!
I am choosing a GUI framework for Semestral project and your video helped me a lot Alan, thank you so much for sparing your evening for this video!
Fantastic video. I watched through your entire video series on PyQt and bought your book, of which you are STILL the author (last time I checked). You're the only one out here I've seen so far that demonstrates deep understanding and communicates it well. Thanks Alan!
Awesome, hope you are getting a lot out of the book.
@@alandmoorecodes3585 I'm getting an incredible amount. As a sales guy myself, I appreciate that you sold me on it with the PyQt video series! I think you'll be very successful if you keep going on this stuff.
this is a gold mine for new gui programmer
Great video, wish you’d come back to UA-cam!
I wonder why he stopped making videos. Great channel
Really enjoyed this talk, I bought your QT book after hearing your intuitive explainations in your previous QT videos which i hope continue. I am learning Qt along side OpenCv and hope to splice the two together.
The current hurdle is the Model View chapter, it seems like having to sub class is some sort of hack, but gather from your talk this is the standard way to proceed. I find it daunting , the process of seeing what I would need to sub class, but no-one got good by giving up.
Thanks! OOP can be pretty jarring for a lot of Python programmers, but we have to remember that Qt comes from the C++ world where it's just de rigueur. Once you get accustomed to it (and I know what you mean about figuring out what to override -- that becomes 80% of the battle with OOP frameworks), it can lead to some very elegant code.
PyQT5 so far has been the most challenging thing I have come accross in python programming in my 2 years of learning to code
I still don't really understand threading. It's much easier with tkinter.
LOL
Brainlet.
@@PySnek Threading is a puzzle at first but once you get it working, it's great.
What a wonderful talk. Thank you. I am a hard core R guy, but need to fire up some gui on linux and needed a quick overview of what is there. This was very educative.
Thanks for this video! It is very informative! I couldn't relate more when you mentioned that thing about QT Docs being mostly in C++, and all things requiring a wrapper class like QColor, etc.
I had to learn the "ways" of PyQT on my own and help from YT and StackOverflow. Your comment of "mentally convert C++ to python, but you get a knack for it." really hits hard. Sums my whole year up.
Cheers!
bhai pyqt5 mein GUI bich bich mein stuck hota hain pura screen nhi lekin ek widget, separate thread use kiya hain gui ke liye
I thought I was going insane with searching a decent Tkinter documentation while running into incomplete ones or sites that were down and/or constantly down. Thanks for pointing it out!
Kind of combining both other comments here.. A high level talk on developing/publishing/distributing/pushing updates to an application, if it's something you'd spend a 'kids in bed gonna do a talk on UA-cam' type evening at, would be really interesting (to me at least). Really enjoyed this, and will probably listen to it again before I build a GUI for a small thing I'm working on.
I'm working through your Tkinter book, one of the best programming books I've worked through. Hats off man. -another bearded dad
3:37 I'm fairly new to GUI programming and a complete amateur, but I thought I'd mention this since I haven't seen anybody else say anything about it. Anki is built with PyQt (and has the custom aqt API which is based on PyQt) and it works on mobile. I don't know if that counts? The whole reason I got into GUI programming was because I was developing an add-on for Anki.
i am a web born guy, php,html,js,css, so i am learning python and discover is a powerful language, so maybe i will learn pyside6 and some html wrapped for gui, the big advantage to build electron style app is HTML is free! greats videos, and regards
Great video. The first time i started using tkingter i absolutely hated the way elements can be sized. Like the buttons size is measured in characters instead of pixels or percentage. I just cant see the logic in that.
Great honest video with no animosity, just what each is capable of so that we can decide for ourselves which one is best to use in each situation. Thanks! Also you book "GUI Programming With Python" is great for learning, very informative.
Thanks! That was my goal.
@@alandmoorecodes3585 you're amazing sir, appreciated your work. Thanks for learning us.
SimplePYGUI is an interesting project using a kind of wrappers to this main libraries in a very simple way.
Thank you Mr. Moore!
I'd really appreciate hearing your opinion on how Kivy compares to Tkinter and PyQt.
Thankful the YT Algo threw this up on my homepage. Subscribing to packt and diving into your Tkinter book Alan. I've some experience "using" objects but none yet creating my own. I've studied Python basics with Dr. Severance out of Michigan U, discovered the magic of SQLite recently and I'm going to utilize Tkinter for my front end to projects. I've read through the description of your book and it's spot on what I need to move forward in my efforts. I like your style Mr. Moore. You've got a new fan. Thank you.
What is "YT Algo"?
@@atlantic_love UA-cam Algorithm - The thing that monitors what you are watching and populates your home page with like minded content. You know, the very same thing that causes a knowledge silo and keeps the left left and the right right . But in this case, brings us technologists the things we love to dig into...
@@TheJacklwilliams Any particular reason you felt it was necessary to include politics in your reply?
@@atlantic_love LOL, yeah, it’s late, I’ve been “working” since 6am and it was me being humorous. No other reason, no agenda, and certainly not a desire to argue for either side. I guess, pausing to think about it for a second, I consider myself no part of it? Aka, why I like tech, and making stuff. Never had a taste for politics. I like, generally, the YT algo but I’m guessing that’s because my pages are full of science tech stuff? So anyway, no intention there at all. Just me being tired and a smartass.
I did a few Tkinter applications and I wasn't happy with it. After my researches I end up with PyQt and build two applications with it. And I love it.
PyQt and never go back to Tkinter.
But what I really dislike is that distributing with PyQt sucks.
> But what I really dislike is that distributing with PyQt sucks.
From a licensing standpoint or a technical standpoint? Just curious.
@@alandmoorecodes3585 That is another story, but I am more an open source guy, so the licensing isn't that of an issue. No, I mean if I distribute it as a package with pyinstaller and similar tools, the files get quite big. And creating distribution files for other platforms is another issue.
Having it builtin like Tkinter solves all these problems.
Agreed, the distribution size can be a problem. Part of the price we pay for such a complete toolkit, I suppose.
From what I understand, PyQt has better appearance & more modern because of being able to use CSS to generate buttons, labels, textbooks, etc.. The Qt layouts enable you to build apps that will fit any screen device (hbox, vbox, etc.) You'd then get the program converted to files for Android, iPhone or for any of the mobile devices.
this video is so calming for some reason
I was thinking to start this search and want to move forward with my previous knowledge about c++/c# and want o learn python but hard time schedule put me back but your this explanation and GUI motivated me to learn effectively and faster than I thought. Thanks for the video and books
Stay blessed
"Let's talk it out...". I'm glad you did. Direct, simple, honest, no frill, no airs and graces. By 19:11 I was talking back to you (Zoom-fatigue) and asking additional questions. I love your content, I love your approach, I love your style......LIKED, SHARED, SUBSCRIBED....SIMPLES.
I really identified with the developer experience part of using tk, very easy at first but it's not long before you have to start rolling your own functionality (or searching for third party widgets). I've used quite a few GUI frameworks and libraries on other languages so it's a bit jarring when something I expect is missing. Thanks for the comparison, i'll try PyQT next.
Thanks for the video, definitely agree on the frustration with tkinter. You can't even color a single cell in a ttk.TreeView or edit something in a cell, those things are included automatically in Qt tables. But the missing scrolling behaviour on expanding frames is probably the worst thing I encountered.
They should have named it QtPy. Missed opportunity 😕
Thanks for the info ... must say nice to see someone commenting who has done both...
Awesome in depth unbiased and whirlwind overview of GUI programming languages and technologies out there.
I’ve done a lot of cocoa and cocoa touch with Xcode on macOS when I was younger, so I think for me getting into PyQt / PySide was fairly easy, I think those two frameworks are kinda working similarly
Well nowadays we have customtkinter and ttkbootstrap in tkinter, so a fair comparation with include those
The craziest thing I saw developed in TCL/TK is a MSN Messenger clone for unix. I tested it in Linux and Sparc Solaris early 2000s. It worked perfectly, and graphically was a 100% clone with the original one.
Man, thank you very much for that introduction/overview on GUI programming with Python. I just stepped into GUI programming, and was kind of lost starting with PyQt because I m not used to not have all the documentation for objects. Now I know where to look for (PySide and Qt C documentation). Great overview really, and concerning your book on PyQt, how relevant it is with the last release PyQt6 ? I may want to get one of these.
Thanks! The book is still relevant; PyQt6 has made a few minor changes, such as scoping enums and removing the qresource system. See www.riverbankcomputing.com/static/Docs/PyQt6/pyqt5_differences.html for a full list, it's not much. I hope to do a PyQt6 book at some point, but the API is still in flux and a lot of modules I covered in the book aren't supported just yet.
@@alandmoorecodes3585 Thank you for your answer. Now another question came to my mind, should I start with PyQt6 or wait for those unsupported modules to be implemented and use PyQt5 in the meantime?
@@tom_p6430 I think it depends on the timeframe of your goals. PyQt6 is going to be adding back support for features, hammering out bugs, and making potentially breaking changes for at least another release, possibly two. PyQt5 is mature now, and as of yet I can't think of a compelling new feature in 6 that would induce me to choose it until it's ready for prime time. If you want to deliver a working application in the next 6 months, I'd stick to PyQt5. If it's more like a couple of years, start with PyQt6. In either case, it shouldn't take much adjustment to update.
Excellent information. Now getting into python and this was very helpful.
Thank you for this great guidance. Now I can decide which one to go with. Thank you!!
Excellent video as usual! The side bar gives this a pleasing Windows 98 Setup vibe.
Haha! I didn't think about that but you're right. I should do that more often.
Thanks for review of the flavours of Python
Thanks for this, bought your book.
I started with Tkinter because of that bothersome "I don't want to mess with any C++ bindings" nonsense for a small-ish project.
After some time, the project got massive and I was having problem transporting data from windows to threads to a camera and it got a bit too much.
I had a really hard time finding "real projects" with tkinter because it seems like it is a "get your feet wet" kind of GUI. Since I don't really care about modernity and I just locked resizing the windows. Great info!
Also -- size, I have always been mindful of memory restrictions because I started doing embedded firmware on microcontrollers, and also I work with a remote office in China who have problems getting proper Python mirrors, thus as standard install as I can be, the better.
This is my favorite video :)
This guy is a legend
If your after Mobile python, Kivy is something to investigate. Its a rather eccentric system, but its proven on mobile.
What about kivy.....
PySide doesn't need a commercial license. I'd say go for PySide ALWAYS with qt designer. Much easier than tkinter (unless you use custom tkinter or something).
16:00 I'm not an expert nor old enough to understand these concepts, but say you use only 3 classes from a library in an app out of 20 or 1000 as you said.
Rhe compilation time/code size won't increase, but the attached library would. In tkinter it won't matter as it's embedded in Python, but for pyQt and the rest, can you extract only the needed codes from a library, assuming they're not accessed or checked for in the code or compiled part/whatever?
In other words, I know tkinter but not pyQt, when I make a GUI app, using only frame, button and text field, can I ship only those classes, and whatever they require, from the pyQt library? Is that considered an adaptation of the library, hence copy right issues? Is it at technically possible (as in a company making an app as small as possible after licencing it from pyQt owners?
I'm making a GUI app and developing it continuously, so I'm not sure if the style points is worth it compared to tkinter.
The Tk in TclTk stands for "Toolkit"
Great, truly, enlightened me.
Hi. If you don’t mind, since you’ve wrote a book about it, please answer this question; how do you change title bar colour? Can’t find the solution for pyqt6 and tainted. For python project. Been searching for days. Any help is appreciated.
Pyside6 has made many strides. If only there was a QScintilla alternative. Unless you're doing something very basic, why use Tkinter at all?
Very helpful video. Thanks for the video.
This video really helped me out! Thanks Alan 🙂
Thank you! The book is awesome !
Thank you!
@@alandmoorecodes3585 I wish there was a book about only Python made by you !
@@haidar901 Thanks! Maybe someday, but it's a pretty saturated market for sure.
truly precious guidance, Thank you
A very good explanation. And I like the way you present. Thanks dude !
Thank you
Tks a lot from Brazil!
Great video Mr. Moore! Do you have any experience with JavaFX? And if so, how would you rate it in a heads up comparison to PyQt? I kinda got the vibe from this video that the look and feel of Tkinter is much like that of the older Java swing class. Java swing, imo, looks somewhat old & dated. Would Tkinter be similarl to Java swing? Thanks again, really good tutorial.😁
I'm afraid I haven't touched Java in a loooooooong time, so my opinions on it would not be very valuable. I did work with swing a little back in the mid '00s, and it is somewhat reminiscent of Tkinter, at least in appearance. I can't recall much about the actual workflow or code design.
What a video, refreshing
I have not watch this video. but nothing can be compare with Qt. I have made very crazily good application with Qt Widget
can I build an application by TKinter and the application will connect with API or it will hard?
Hello Alan - I've enjoyed and learned a bunch of great stuff from your videos. I think you're the best Python teacher on the internet. I'd like to tell you something I just ran into concerning tkinter. Have you heard of, or have thoughts on tk_tools? I stumbled upon something called tk_tools.SmartOptionMenu and it looks promising to me (a newbie to Python, but a COBOL and Uniface programmer for about 35 years). I've written my first Python program for my own use which I am very proud of (yet another UA-cam downloader) - But chock full of globals. Could you look into tk_tools and perhaps do a video on it's use? It seems to have a lot of GUI widgets that augment and surpass tkinter's widgets. I'm mostly interested in the one I mentioned earlier. Thanks for the great content and I look forward for more. I am a linux (MX-Linux) devotee.
I have seen tk tools, but haven't looked at it in depth. Will give it another look though, thanks.
@@alandmoorecodes3585 Thanks for responding! That tells me you care about your audience. Much respect! I did some experiments with tk_tools.SmartOptionMenu and found that I could not get the initial value back and I don't know why. It seems a combobox would do me better in that regard.
I just tried tkinter and it's just too time consuming to deal with coding all the frames and grids and having things not work how you want. Hoping PyQt is easier to work with.
Neither of them are that great. They've been ported over and kind of left for dead. The future looks even more bleak when people recommend crippled and mostly useless frameworks like "PySimpleGui" and "PyGame". LOL.
@@atlantic_love What's a good choice for GUIs then if the webstack is just yucky (html, css, javascript).
Not even talking about language choices here but frameworks and toolkits so stuff like "C++" isn't even an answer since that's not a GUI.
@@atlantic_love Not saying you're wrong but I do want to hear what's a better choice then...
There are tons of GUI toolkits to choose from so it's not an easy question or answer imho
@@Chertograad lol there are not "tons of GUI toolkits to choose from", not if you're looking to make anything more than a pop-up window.
@@Chertograad There are frameworks that work with C++. If you inferred anything other than that from my comment, then you're just looking to argue.
I'm completely lost: beginner just want to know what's the best language to build a GUI. nothing fancy. wonder if livecode will work for me...
Sorry, I can understand the frustration; I guess this video was aimed at a person in a different place. If you're a beginner, I think the best thing is not to worry about what's "best" and just find something that clicks with you. Part of the reason we have all these languages and frameworks is because different people want to approach the same problems from whatever way makes sense to them. Find something that makes sense to you and just go with it.
@@alandmoorecodes3585 wise words. thank you for the unexpected feedback, my prince.
bro how i can get pdf of this books
Great video. Thanks.
Gracias por la ayuda! 🤜🤛
Can I build a PyQt application as an internal application for my organization without purchasing a licence?
Of course you can. You just cannot overlay a copyright but you still can sell it. You just cannot say it is your IP and prevent users from copying it.
If you are a begginner I think tkinter will always be best for you
ONLY IF YOU AN BEGGINNER
Title question is such an easy answer, and I don't even need to watch the video. PyQt5 over tkinter. When converting your program to an exe, tkinter doesn't work. PyQt5 works great.
Right for me : between both . . . WxPython ! 😉
I wish I saw your video 5 years ago! After spending too much time looking on the web I ended up with the right choice (Tkinter). Now maybe I should switch over to PyQt or PySide. Degrading docs and maintenance(?) means Tkinter's days are numbered?
Tkinter's demise has been predicted for decades, but it hangs in there. I think until there is a lightweight, not overly complicated, license-compatible option to replace it, Tkinter will continue to be bundled with Python. If that ever ends it will fade to obscurity most likely, but until then a lot will choose it for those reasons.
@@alandmoorecodes3585 Yeah I agree. I am a scientist who very rarely need to make GUI. Tkinter is great for starters.
Hello, could say how to open a youtube link in qtmediaplayer
QMediaPlayer loads QMediaContent objects and plays them back via a QVideoOutput widget. The QMediaContent can take various arguments to point it to media content, including a QUrl. The problem, though, is that the URL has to point to a video file, not an HTML page. If downloaded the UA-cam link and found some way to scrape it for the actual video link, you might be able to give that to QUrl, though I don't know if it would actually stream or just download the whole thing before playing back (or if it would work at all). Check out the youtube-dl project for some code that might help you do that. A solution of this kind is bound to be brittle, though; a change in the youtube site code could break it.
If you want to embed a UA-cam video in your application, you're probably better off just putting a QWebEngineView widget and pointing it to the video's embed URL.
@@alandmoorecodes3585 Thank you, I find out pafy module it do it as I want. QWebEngineView doesn't autoplay with sound.
Thanks so much. This is gold!
Hello Alan, Does PyQt5 need to be run from a certain python version? I can't seem to get it to install in pycharm properly on windows.
You need the correct version compiled for your version of python. If you install with pip this should happen automatically. I'm afraid I don't know much about installing with pycharm.
@@alandmoorecodes3585 Thanks, BTW just recently bought your Pyqt5 book so far a good read.
Great video.
Thankyou Sir!
Very nice.
Video was helpful for me. I would like to know about the speeds of both Applications. Which library has good speed response after converting to .exe?
I have been using tkinter from one year but i am now confused which library should be chosen for my professional career of app developer?
Any suggestions will be helpful
Tkinter is smaller, though it calls back to another interpreted language. Qt is huge, but it calls back to compiled C++ binaries. Which one is faster? I honestly couldn't say. If I had to make an answer, I'd say 95% of the time it won't matter on modern hardware. The bigger problem is going to be in designing your application in a way that it doesn't freeze up or do unnecessary things.
I don't think you should be of a mindset to pick a library for your career. You will, in all likelihood, be asked to use many different toolkits throughout the course of a career, including many that don't exist yet. The important thing is to understand how to learn a new toolkit and work with it well. Everything you learn will build on everything else, it is never wasted.
@@alandmoorecodes3585 thanks sir!! very helpfull ..
Sir improve sound level plzzz
Don't be a spoiled brat plzzz