Tài liệu Python gui programming with pyside

  • Số trang: 25 |
  • Loại file: PDF |
  • Lượt xem: 329 |
  • Lượt tải: 0

Đã đăng 411 tài liệu

Mô tả:

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
- Xem thêm -