📄 book1.htm
字号:
<HTML><HEAD><TITLE>GUI Programming with Python: QT Edition</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.72"><LINKREL="NEXT"TITLE="Preface"HREF="f26.htm"></HEAD><BODYCLASS="BOOK"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="BOOK"><ANAME="AEN1"></A><DIVCLASS="TITLEPAGE"><div class="bldcontent">GUI Programming with Python: QT Edition</A></div><H3CLASS="AUTHOR"><ANAME="AEN4">Boudewijn Rempt</A></H3><PCLASS="COPYRIGHT">Copyright © 2001 by Commandprompt, Inc</P><DIVCLASS="LEGALNOTICE"><ANAME="AEN17"></A><P></P><P>Copyright (c) 2001 by Command Prompt, Inc. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/).</P><P>‘Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder.' to the license reference or copy.</P><P>‘Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.' to the license reference or copy.</P><P></P></DIV><DIVCLASS="LEGALNOTICE"><ANAME="AEN21"></A><P></P><P>Although every reasonable effort has been made to incorporate accurate and useful information into this book, the copyright holders make no representation about the suitability of this book or the information therein for any purpose. It is provided <SPANCLASS="QUOTE">"as is"</SPAN> without expressed or implied warranty.</P><P></P></DIV><HR></DIV><H1><ANAME="AEN24">Dedication</A></H1><P>This book is dedicated to Irina.</P><DIVCLASS="TOC"><DL><DT><B>Table of Contents</B></DT><DT><AHREF="f26.htm">Preface</A></DT><DD><DL><DT><AHREF="f26.htm#PREFACEUSINGPYQT">Who is using PyQt</A></DT><DT><AHREF="x43.htm">For whom is this book intended</A></DT><DT><AHREF="x52.htm">How to read this book</A></DT><DT><AHREF="x61.htm">Conventions</A></DT><DT><AHREF="x76.htm">Acknowledgments</A></DT></DL></DD><DT>1. <AHREF="c88.htm">Introduction</A></DT><DD><DL><DT><AHREF="c88.htm#AEN112">Python</A></DT><DT><AHREF="x179.htm">GUI programming with Python</A></DT><DT><AHREF="x258.htm">About the BlackAdder IDE</A></DT></DL></DD><DT>I. <AHREF="p266.htm">Introduction to the BlackAdder IDE</A></DT><DD><DL><DT>2. <AHREF="c271.htm">Installation</A></DT><DD><DL><DT><AHREF="c271.htm#AEN277">Installing BlackAdder</A></DT><DT><AHREF="x327.htm">Installing sip and PyQt without BlackAdder</A></DT></DL></DD><DT>3. <AHREF="c411.htm">Interface</A></DT><DD><DL><DT><AHREF="c411.htm#AEN440">Menubar</A></DT><DT><AHREF="x455.htm">Toolbars</A></DT><DT><AHREF="x545.htm">Project management</A></DT><DT><AHREF="x584.htm">BlackAdder Configuration</A></DT><DT><AHREF="x615.htm">Editing</A></DT><DT><AHREF="x635.htm">Python shell</A></DT><DT><AHREF="x650.htm">Conclusion</A></DT></DL></DD><DT>4. <AHREF="c653.htm">Introduction to Python</A></DT><DD><DL><DT><AHREF="c653.htm#AEN663">Programming fundamentals</A></DT><DT><AHREF="x719.htm">The Rules</A></DT><DT><AHREF="x823.htm">Constructions</A></DT><DT><AHREF="x879.htm">Conclusion</A></DT></DL></DD><DT>5. <AHREF="c883.htm">Debugging</A></DT><DD><DL><DT><AHREF="c883.htm#AEN933">Running scripts</A></DT><DT><AHREF="x945.htm">Setting breakpoints</A></DT><DT><AHREF="x966.htm">Stepping along</A></DT><DT><AHREF="x993.htm">Debugging Techniques</A></DT><DT><AHREF="x1024.htm">If all else fails</A></DT></DL></DD></DL></DD><DT>II. <AHREF="p1032.htm">PyQt fundamentals</A></DT><DD><DL><DT>6. <AHREF="c1036.htm">Qt Concepts</A></DT><DD><DL><DT><AHREF="c1036.htm#AEN1040">Python, Qt and PyQt</A></DT><DT><AHREF="x1067.htm">As simple as they come</A></DT><DT><AHREF="x1149.htm">A better Hello World</A></DT><DT><AHREF="x1214.htm">Designing forms</A></DT><DT><AHREF="x1263.htm">Conclusion</A></DT></DL></DD><DT>7. <AHREF="c1267.htm">Signals and Slots in Depth</A></DT><DD><DL><DT><AHREF="c1267.htm#AEN1273">The concept of signals and slots</A></DT><DT><AHREF="x1408.htm">Connecting with signals and slots</A></DT><DT><AHREF="x1631.htm">Disconnecting</A></DT><DT><AHREF="x1807.htm">A parser-formatter using signals and slots</A></DT><DT><AHREF="x2026.htm">Conclusion</A></DT></DL></DD><DT>8. <AHREF="c2029.htm">String Objects in Python and Qt</A></DT><DD><DL><DT><AHREF="c2029.htm#AEN2034">Introduction</A></DT><DT><AHREF="x2068.htm">String conversions</A></DT><DT><AHREF="x2104.htm">QCString — simple strings in PyQt</A></DT><DT><AHREF="x2183.htm">Unicode strings</A></DT></DL></DD><DT>9. <AHREF="c2341.htm">Python Objects and Qt Objects</A></DT><DD><DL><DT><AHREF="c2341.htm#AEN2346">Pointers and references</A></DT><DT><AHREF="x2377.htm">Circular references</A></DT><DT><AHREF="x2393.htm">Qt objects, Python objects and shadow objects</A></DT><DT><AHREF="x2420.htm">References and ownership</A></DT><DT><AHREF="x2540.htm">Other C++ objects</A></DT><DT><AHREF="x2549.htm">Connecting signals and slots</A></DT><DT><AHREF="x2568.htm">Object and class introspection</A></DT></DL></DD><DT>10. <AHREF="c2591.htm">Qt Class Hierarchy</A></DT><DD><DL><DT><AHREF="c2591.htm#AEN2597">Hierarchy</A></DT><DT><AHREF="x2629.htm">Base classes</A></DT><DT><AHREF="x2693.htm">Application classes</A></DT><DT><AHREF="x2765.htm">Widget foundations: QWidget</A></DT><DT><AHREF="x2976.htm">Basic widgets</A></DT><DT><AHREF="x3270.htm">Advanced widgets</A></DT><DT><AHREF="x3410.htm">Layout managers</A></DT><DT><AHREF="x3581.htm">Dialogs and Standard Dialogs</A></DT><DT><AHREF="x3738.htm">Qt Utility classes and their Python equivalents</A></DT></DL></DD><DT>11. <AHREF="c4079.htm">Qt Designer, BlackAdder and uic</A></DT><DD><DL><DT><AHREF="c4079.htm#AEN4107">Introduction</A></DT><DT><AHREF="x4274.htm">Advanced Designer topics</A></DT></DL></DD></DL></DD><DT>III. <AHREF="p4627.htm">Creating real applications with PyQt</A></DT><DD><DL><DT>12. <AHREF="c4631.htm">Application Frameworks</A></DT><DD><DL><DT><AHREF="c4631.htm#AEN4637">Architecture: models, documents and views</A></DT><DT><AHREF="x4760.htm">Macro languages</A></DT><DT><AHREF="x4782.htm">Project layout</A></DT></DL></DD><DT>13. <AHREF="c4807.htm">Actions: menus, toolbars and accelerators</A></DT><DD><DL><DT><AHREF="c4807.htm#AEN4824">Actions</A></DT><DT><AHREF="x4954.htm">Menus</A></DT><DT><AHREF="x4974.htm">Toolbars</A></DT><DT><AHREF="x5021.htm">Keyboard accelerators</A></DT><DT><AHREF="x5049.htm">Setting an application icon</A></DT></DL></DD><DT>14. <AHREF="c5064.htm">Automatic testing with PyUnit</A></DT><DD><DL><DT><AHREF="c5064.htm#AEN5073">About unittests</A></DT><DT><AHREF="x5102.htm">Starting out</A></DT><DT><AHREF="x5120.htm">A first testcase</A></DT><DT><AHREF="x5171.htm">Collecting tests in a test suite</A></DT><DT><AHREF="x5202.htm">A more complicated test</A></DT><DT><AHREF="x5234.htm">Large projects</A></DT><DT><AHREF="x5255.htm">Testing signals and slots</A></DT><DT><AHREF="x5285.htm">Conclusion</A></DT></DL></DD><DT>15. <AHREF="c5288.htm">A More Complex Framework: Multiple Documents, Multiple Views</A></DT><DD><DL><DT><AHREF="c5288.htm#AEN5290">Introduction</A></DT><DT><AHREF="x5339.htm">Document/View Manager</A></DT><DT><AHREF="x5388.htm">The Document Manager</A></DT><DT><AHREF="x5451.htm">Document</A></DT><DT><AHREF="x5458.htm">View</A></DT><DT><AHREF="x5469.htm">The actual application</A></DT><DT><AHREF="x5581.htm">Conclusion</A></DT></DL></DD><DT>16. <AHREF="c5584.htm">User Interface Paradigms</A></DT><DD><DL><DT><AHREF="c5584.htm#AEN5591">Tabbed documents</A></DT><DT><AHREF="x5657.htm">Back to the MDI windows</A></DT><DT><AHREF="x5679.htm">A row of split windows</A></DT><DT><AHREF="x5700.htm">A stack of documents</A></DT><DT><AHREF="x5722.htm">A more complex view management solution</A></DT><DT><AHREF="x5778.htm">Conclusion</A></DT></DL></DD><DT>17. <AHREF="c5783.htm">Creating Application Functionality</A></DT><DD><DL><DT><AHREF="c5783.htm#AEN5785">Introduction</A></DT><DT><AHREF="x5798.htm">The view</A></DT><DT><AHREF="x5879.htm">The document</A></DT><DT><AHREF="x5925.htm">Saving and loading documents</A></DT><DT><AHREF="x5968.htm">Undo, redo and other editing functions</A></DT><DT><AHREF="x6008.htm">Conclusion</A></DT></DL></DD><DT>18. <AHREF="c6013.htm">Application Configuration</A></DT><DD><DL><DT><AHREF="c6013.htm#AEN6019">Platform differences</A></DT><DT><AHREF="x6053.htm">The Python way of handling configuration settings</A></DT><DT><AHREF="x6082.htm">Implementing configurations settings for <SPANCLASS="APPLICATION">Kalam</SPAN></A></DT><DT><AHREF="x6300.htm">Settings in Qt 3.0</A></DT><DT><AHREF="x6342.htm">Conclusion</A></DT></DL></DD><DT>19. <AHREF="c6351.htm">Using Dialog Windows</A></DT><DD><DL><DT><AHREF="c6351.htm#AEN6357">Modal: a preferences dialog</A></DT><DT><AHREF="x6734.htm">Non-modal: Search and replace</A></DT><DT><AHREF="x6992.htm">Conclusion</A></DT></DL></DD><DT>20. <AHREF="c6996.htm">A Macro Language for <SPANCLASS="APPLICATION">Kalam</SPAN></A></DT><DD><DL><DT><AHREF="c6996.htm#AEN7006">Executing Python code from Python</A></DT><DT><AHREF="x7161.htm">Integrating macros with a GUI</A></DT><DT><AHREF="x7295.htm">Creating a macro API from an application</A></DT><DT><AHREF="x7388.htm">Conclusion</A></DT></DL></DD><DT>21. <AHREF="c7391.htm">Drawing on Painters and Canvases</A></DT><DD><DL><DT><AHREF="c7391.htm#AEN7412">Working with painters and paint devices</A></DT><DT><AHREF="x7601.htm">QCanvas</A></DT><DT><AHREF="x7875.htm">Conclusion</A></DT></DL></DD><DT>22. <AHREF="c7878.htm">Gui Design in the Baroque Age</A></DT><DD><DL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -