get paid

Get paid for the tasks you do online

2019年1月27日 星期日

PyQT5 教學 -- 顯示 Hello World

















會想要寫一系列的PYQT5 教學 主因是一直沒有找到一本書 從基礎pyqt5 教起
之前買了一本 大陸作者對書, 她把 PYQT 教的很複雜, 讓我一開死有點挫折, 只了一下也沒啊線好的英文書籍 就想到自己把自己心得寫出來

剛好看到 https://pythonbasics.org 有新增 PyQt 介紹 我就打算以此為藍本翻譯給大家

大家寫程式第一步都是 Hello World ...  PyQT 第一步 也來個 Hello Word 吧

首先當然是 import 所需要的

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot

上面這都是跑不掉的

再來就是呼叫QApplication , 初始化圖形介面物件
app = QApplication(sys.argv)

呼叫 Qwidget 物件, 並給這個物件一個名字 widget
QWidget 物件又是一個簡單的視窗物件

widget = QWidget()

widget.setGeometry(50,50,320,200)  # 設定視窗位置 (左上X, 左上Y, 右下X, 右下Y)
widget.setWindowTitle("PyQt5 Hello World 測試")
但當我們要加入一串文字時, 並不能直接加入
需要先在 QWidget 裡面加入一個 QLabel 物件,
Qlabel 這物件 就是用來存要顯示的字串, 在這裡就是 Hellow World
所以我們現加入 Qlabel 到 widget 這個視窗物件 , 並給他一個名字叫textLabel

textLabel = QLabel(widget)

#將hello world 寫入 textLabel

textLabel.setText("Hello World!")

# 將 label 移到螢幕 100,85 這個位置
textLabel.move(110,85)

上面的視窗設定完了並不會顯示
需要執行 show() 才會顯示
widget.show()

當然整個圖形介面程式需要執行下面這行才會動作
sys.exit(app.exec_())


完整程式如下
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot

app = QApplication(sys.argv)
widget = QWidget()
widget.setGeometry(50,50,320,200)
widget.setWindowTitle("PyQt5 Hello World 測試")
textLabel = QLabel(widget)
textLabel.setText("Hello World!")
textLabel.move(110,85)
widget.show()
sys.exit(app.exec_())

結果


很簡單吧? 之所以GUI 設計有點複雜是因為他用到很多物件的概念, 很多人教也都用物件的叫發來寫, 但針對簡單的 GUI 是不需要把它包成 class 的

當然如果要寫複雜的 GUI 用物件是必須的, 但當你知道基本後 再改成物件形式就很簡單了
這個之後會慢慢教

下面是我的教學影片





沒有留言:

張貼留言

ChartGPT 學 python 很強喔

 ChartGPT 最近很紅 ,  前一陣子有一些小 module  本來想 google  一下 語法 但發現用 chartGPT 直接請他給 sample code 反而較快 所以只要你有基本 知識 ChartGPT 可以加速你的開發 好用喔