Python GUI programming with pyside

25 173 0
Python GUI programming with pyside

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Python GUI programming with PySide Speaker: BigLittle Date: 2013/03/04 CLI vs GUI CLI (Command Line Interface) GUI (Graphical User Interface) • Take less resources • User have much more control of their system • Only need to execute few line to perform a task • Easier for user to view and control your application • Ability of multitasking About Python + GUI • Some GUI library for Python: • • • • Tkinter - Python's standard GUI package (Tcl/Tk) wxPython - A Python extension module that wraps wxWidgets library PyQt4 - A Python binding of the cross-platform GUI toolkit Qt PySide - A Python binding of the cross-platform GUI toolkit Qt • Qt & wxWidgets are both well known C++ GUI library: • They are free and open source • They are cross-platform and support Unicode • They have full documentation and community support Why Qt / PySide? • Pros: • • • • • • It’s NOT MFC style Easy to build up by QtDesigner or text coding Intuitive SIGNAL / SLOT mechanism Supports I18N (Internationalization) LGPL (GNU Lesser General Public License) The API is more Pythonic • Cons: • Qt is not written in standard C++ library • Application size is big • blabla…… I don’t care, and you? Before Starting… • Install Python (What?!) • http://www.python.org/download • User should note the compatibility between version 2.7.x and 3.x • Install Qt • http://qt-project.org/downloads • The latest version is 5.0 (It’s too new for me =.=) • Install PySide • http://qt-project.org/wiki/PySideDownloads • Current version is 1.1.2, but most references on web is for 1.0.7 A Simple Program • test.py object oriented programming styles Just so easy! A Simple Program (cont’d) • test.py Import PySide module here A Simple Program (cont’d) • test.py Inherit class “QMainWindow” set it’s title then show itself A Simple Program (cont’d) • test.py Contains the main event loop Create MyWindow instance A Simple Program (cont’d) • test.py Actually, the easiest way may be: app = QApplication(sys.argv) main = QMainWindow() main.setWindowTitle(“First GUI”) main.show() sys.exit(app.exec_()) Trigger when execute test.py Where Is Other Stuff? • Just like a HD, you must format it then you can put in your data • HD  Current Window • Format  QLayout • Data  QWidget • QLayout and QWidget are the most basic classes that make up your GUI QMainWindow is a subclass of QWidget Right figure shows the default configuration QLayout • In fact, you don’t need to start from QLayout itself There are many pre-designed layout Use them directly should be enough QHBoxLayout QGridLayout QVBoxLayout QFormLayout QWidget • Example Think: What’s the layout setting in the QGroupBox? Let’s Put Something On It How To Activate It? • Now you have a “skin” of your application Let’s make it activated For example, push “Big” button then type “Bigger” on the editor trigger response • In Qt, trigger & response are called SIGNAL & SLOT SIGNAL / SLOT • self.btn1.clicked.connect(self.typebig) • The advantage of SIGNAL / SLOT is the caller does not have to know anything about the receiver and vice versa • Any function could be a SLOT • One can connect several SLOT to a SIGNAL and vice versa • A common usage: Real-time check for input contents Exercise… • Try to modify the simple program to MD5 Encrypter Exercise… (cont’d) • You need import hashlib first Use Advanced Module • Matplotlib - A Python plotting library (Based on PySide!) • SciPy - An open source library of scientific tools for Python • VTK - Visual Tool Kit (TVTK, Mayavi) Much Better Than Excel… • Source code: http://matplotlib.org/examples/pylab_examples/demo_agg_filter.html Something To Be Continued • Decorations: • Take advantages of groups, tabs, tooltips, …, etc • Add some icons, sounds or visual effects • Maintains: CurveExpert (PyInstaller) • Debug, debug and debug • Packing/Release: • PyInstaller - Cross platform • cx_Freeze - Cross platform • py2exe - Window only BitTorrent (py2exe) Create Your Own GUI App! • • • • • • • • • • Model-View-Controller Automation Tool Distributed Programming Database Management Multimedia CAD Software Embedded System Web Application Games …… Summary • GUI programming could help you interactively control the application and report visualized final data Every programmer should familiar with its basic concept • Programming in PySide = Programming in OOP All components in library can be easily adapted and modified Try to use them as much as possible • There are many “splendid” functions like graphics, animation, drag & drop…, etc for GUI programming You can improve the user experience by these, but remember to pay more attention on the performance of your application References • • • • • • • • http://zh.wikipedia.org/wiki/Qt http://qt-project.org/wiki/PySide http://matplotlib.org http://www.scipy.org http://www.vtk.org http://www.pyinstaller.org http://cx-freeze.sourceforge.net http://www.py2exe.org Thanks for your attention ... About Python + GUI • Some GUI library for Python: • • • • Tkinter - Python' s standard GUI package (Tcl/Tk) wxPython - A Python extension module that wraps wxWidgets library PyQt4 - A Python. .. Python binding of the cross-platform GUI toolkit Qt PySide - A Python binding of the cross-platform GUI toolkit Qt • Qt & wxWidgets are both well known C++ GUI library: • They are free and open... GUI App! • • • • • • • • • • Model-View-Controller Automation Tool Distributed Programming Database Management Multimedia CAD Software Embedded System Web Application Games …… Summary • GUI programming

Ngày đăng: 12/09/2017, 01:44

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan