大家早上好
最近身边有很多同学在学习通过PyQt写界面
今天我向大家分享的是一个大佬
Pavel Křupala 出的一套免费的PyQt教程
教大家如何从零开始撸一个节点编辑器
教程质量十分之高
有视频教程, 还带完整源码
是大家学习PyQt的好资源,大家赶紧收藏然后学习起来!
教程介绍
http://mpvideo.qpic.cn/0b78aaaawaaaheai4p4jdvqfaagdbmaaacya.f10002.mp4?dis_k=f84d2f148f6fcdc639e0a2f64d48588f&dis_t=1657793081&vid=wxv_1846047444384415746&format_id=10002&support_redirect=0&mmversion=false
Gitlab
https://gitlab.com/pavel.krupala/pyqt-node-editor
教程大纲
Beginner | Introduction00 - Prerequisities: How to setup PyCharm01 - Creating View, Scene, Grid Background02 - Adding Items to GraphicsView03 - Scene Navigation, Zooming04 - Architecture planning, Scene Implementation05 - How to implement Node06 - Implementing Node Content, Styles07 - How to implement Sockets08 - How to implement Edges09 - Positioning Edges and Debugging10 - Finishing Edges, Socket Variation11 - How to create Dragging Edge12 - Finishing Dragging Edge13 - How to implement Selecting Items14 - How to implement Deleting Items15 - Cutting Edges |
---|---|
Intermediate | 16 - Introduction to Serialization, Saving Scene17 - Deserialization - File load18 - Undo & Redo #1 Introduction19 - Undo & Redo #2 History Stack20 - Undo & Redo #3 History Stamps21 - How to implement Main Window with Menu22 - How to implement Clipboard Operations23 - How to implement Clipboard Serialization24 - Bugfixing Crashes, Missing Edge25 - File Has Changed Dialog26 - Socket with Multiple Edges27 - How to set up python package with tests and docs |
Advanced | 28 - Calculator Example: Introduction29 - Calculator Example: Refactoring Window, Actions, Menus30 - Calculator Example: How to create MDI SubWindow31 - Calculator Example: Refactoring Styles + Bonus: Dark Skin32 - Calculator Example: Refactoring Open, Save, Save As33 - Calculator Example: Finishing Refactoring Save and Save As34 - Calculator Example: Updating Edit Menu35 - Calculator Example: Item Selection Events36 - Calculator Example: Finishing Selection Events37 - Calculator Example: Wrapping up Refactoring |
Calculator Example | 38 - Calculator Example: How to Implement draggable ListWidget with Icons39 - Calculator Example: How to Implement Drag & Drop in PyQt540 - Calculator Example: Creating Calculator Node41 - Calculator Example: Nodes Registration with decorators and Auto-Generation42 - Calculator Example: Putting Sockets on center43 - Calculator Example: Serialization of different Node classes44 - Calculator Example: Styling Nodes using Qt Skin Generator45 - Calculator Example: How to create Context Menu in PyQt546 - Calculator Example: How to create Node State Flags for evaluation47 - Calculator Example: How to implement Node evaluation #148 - Calculator Example: How to implement Node evaluation #249 - Calculator Example: How to implement Node evaluation #3 |
Conclusion | 50 - How to implement Hover effect in PyQt551 - How to create node directly from edge52 - How to create documentation with Sphinx53 - Changes for reusability & Fixes #1 54 - Changes for reusability & Fixes #255 - Changes for reusability & Fixes #356 - Fixing our EdgesNode Editor Architecture OverviewConclusion |
Intermediate
Advanced
Calculator Example
Conclusion
Bonus | Node Editor Bonus Feature 01: Adding Rerouting EdgesNode Editor Bonus Feature 02: Adding Snapping to Sockets |
---|
Beginner | Introduction00 - Prerequisities: How to setup PyCharm01 - Creating View, Scene, Grid Background02 - Adding Items to GraphicsView03 - Scene Navigation, Zooming04 - Architecture planning, Scene Implementation05 - How to implement Node06 - Implementing Node Content, Styles07 - How to implement Sockets08 - How to implement Edges09 - Positioning Edges and Debugging10 - Finishing Edges, Socket Variation11 - How to create Dragging Edge12 - Finishing Dragging Edge13 - How to implement Selecting Items14 - How to implement Deleting Items15 - Cutting Edges |
---|---|
Intermediate | 16 - Introduction to Serialization, Saving Scene17 - Deserialization - File load18 - Undo & Redo #1 Introduction19 - Undo & Redo #2 History Stack20 - Undo & Redo #3 History Stamps21 - How to implement Main Window with Menu22 - How to implement Clipboard Operations23 - How to implement Clipboard Serialization24 - Bugfixing Crashes, Missing Edge25 - File Has Changed Dialog26 - Socket with Multiple Edges27 - How to set up python package with tests and docs |
Advanced | 28 - Calculator Example: Introduction29 - Calculator Example: Refactoring Window, Actions, Menus30 - Calculator Example: How to create MDI SubWindow31 - Calculator Example: Refactoring Styles + Bonus: Dark Skin32 - Calculator Example: Refactoring Open, Save, Save As33 - Calculator Example: Finishing Refactoring Save and Save As34 - Calculator Example: Updating Edit Menu35 - Calculator Example: Item Selection Events36 - Calculator Example: Finishing Selection Events37 - Calculator Example: Wrapping up Refactoring |
Calculator Example | 38 - Calculator Example: How to Implement draggable ListWidget with Icons39 - Calculator Example: How to Implement Drag & Drop in PyQt540 - Calculator Example: Creating Calculator Node41 - Calculator Example: Nodes Registration with decorators and Auto-Generation42 - Calculator Example: Putting Sockets on center43 - Calculator Example: Serialization of different Node classes44 - Calculator Example: Styling Nodes using Qt Skin Generator45 - Calculator Example: How to create Context Menu in PyQt546 - Calculator Example: How to create Node State Flags for evaluation47 - Calculator Example: How to implement Node evaluation #148 - Calculator Example: How to implement Node evaluation #249 - Calculator Example: How to implement Node evaluation #3 |
Conclusion | 50 - How to implement Hover effect in PyQt551 - How to create node directly from edge52 - How to create documentation with Sphinx53 - Changes for reusability & Fixes #1 54 - Changes for reusability & Fixes #255 - Changes for reusability & Fixes #356 - Fixing our EdgesNode Editor Architecture OverviewConclusion |
Intermediate
Advanced
Calculator Example
Conclusion
Bonus Chapters / Features Bonus
贴心文档
教程YouTube观看: Node Editor Tutorials
今天的分享就到此结束,大家好好学习一下
由于教程集数太多了我就不搬运了
如果你需要我帮忙下载欢迎留言让我知道
也欢迎大家多多点赞和转发,感谢!
我们下期再见