1. Trang chủ
  2. » Công Nghệ Thông Tin

Python GUI programming with pyside

25 174 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 1,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Only need to execute few line to perform a task.. GUI Graphical User Interface • Easier for user to view and control your application... • Qt & wxWidgets are both well known C++ GUI

Trang 1

Python GUI programming with

PySide

Speaker: BigLittle

Date: 2013/03/04

Trang 2

CLI vs GUI

CLI (Command Line Interface)

• Take less resources

• User have much more

control of their system

• Only need to execute few

line to perform a task

GUI (Graphical User Interface)

• Easier for user to view and

control your application

• Ability of multitasking

Trang 3

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

Trang 4

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?

Trang 7

A Simple Program (cont’d)

• test.py

Import PySide module here

Trang 8

A Simple Program (cont’d)

• test.py

Inherit class “QMainWindow”

set it’s title then show itself

Trang 9

A Simple Program (cont’d)

• test.py

Create MyWindow instance

Contains the main event loop

Trang 10

A Simple Program (cont’d)

• test.py

Trigger when execute test.py

Actually, the easiest way may be:

app = QApplication(sys.argv) main = QMainWindow() main.setWindowTitle(“First GUI”) main.show()

sys.exit(app.exec_())

Trang 11

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

Trang 13

QWidget

in the QGroupBox?

Trang 14

Let’s Put Something On It

Trang 15

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

• In Qt, trigger & response are called SIGNAL & SLOT

Trang 16

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

Trang 17

Exercise…

• Try to modify the simple program to MD5 Encrypter

Trang 18

Exercise… (cont’d)

• You need import hashlib first

Trang 19

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)

Trang 20

Much Better Than Excel…

• Source code: http://matplotlib.org/examples/pylab_examples/demo_agg_filter.html

Trang 21

Something To Be Continued

• Decorations:

• Take advantages of groups, tabs, tooltips, …, etc

• Add some icons, sounds or visual effects

• Maintains:

• Debug, debug and debug

• Packing/Release:

PyInstaller - Cross platform

cx_Freeze - Cross platform

py2exe - Window only

CurveExpert

(PyInstaller)

BitTorrent

(py2exe)

Trang 22

Create Your Own GUI App!

Trang 23

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

Trang 25

Thanks for your attention

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

TỪ KHÓA LIÊN QUAN