成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Qt for Python學習筆記—應用程序初探

開發 后端
本文詳細介紹如何在 Window 平臺上用純代碼方式(不借助 Qt Designer 工具)來開發一個簡單的 Qt for Python 入門 GUI 應用程序(含詳細的代碼解析),讓讀者有個基本的感覺,供各位 Qt for Python 的初學者們參考。

前言

本文詳細介紹如何在 Window 平臺上用純代碼方式(不借助 Qt Designer 工具)來開發一個簡單的 Qt for Python 入門 GUI 應用程序(含詳細的代碼解析),讓讀者有個基本的感覺,供各位 Qt for Python 的初學者們參考。

注:本系列將會以 PySide6 為例進行介紹,原則上同樣適用于 PyQt6(只需將代碼中導入語句的 PySide6 替換為 PyQt6 即可)。

1. 簡介

既然開發環境已經準備就緒,那就讓我們通過開發一個簡單的示例程序來首次探索它。

本示例程序雖然簡單,但會涉及到如下內容,希望能幫助初學者對使用 PySide6 開發 Python GUI 應用程序代碼框架有個初步的印象。

  • 如何導入 PySide6 模塊(或類)
  • 如何創建一個應用程序(QApplication)對象
  • 如何創建一個標簽(QLabel)對象作為主窗口,并在構造時設置其相關屬性,使用 Qt 樣式表設置標簽屬性。
  • 如何設置主窗口(即標簽)標題
  • 如何顯示主窗口(即標簽)
  • 如何運行應用程序

2. 示例目標及原型

我們確定該應用程序所設想達到的目的,并給出其原型。

一、示例目標:

本示例目標是創建一個 Python GUI 應用程序,其主窗體中(水平和垂直)居中顯示一段藍色的文本信息,隨著窗口的拉伸,該文本大小、顏色保持不變,但其位置仍然在主窗體中保持(水平和垂直)居中。主窗體標題為“PySide6 示例程序”。

二、示例原型:

在進行 GUI 應用程序編碼之前,一般建議先勾畫出 GUI 框架(窗體及各部件的布局等)。本示例原型如下:

 

 

示例原型

 

3. 示例代碼及運行

一、編輯代碼

利用代碼編輯器編輯示例代碼,并保存為文件(如:C:\MyPySide6\MyPySide6App1.py)。

 

  1. from PySide6.QtWidgets import (QApplication, QLabel) 
  2.  from PySide6.QtCore import Qt 
  3.   
  4.  app = QApplication([]) 
  5.   
  6.  label = QLabel("用 PySide6 開發的第一個 GUI 應用程序!", alignment=Qt.AlignCenter) 
  7.  label.setStyleSheet("color: blu e; font: bold; font-size: 15px;"
  8.  label.setWindowTitle("PySide6示例程序1"
  9.  label.show() 
  10.   
  11.  app.exec_() 

二、運行程序

從控制臺終端通過命令方式(或直接在 Visual Studio Code 上點擊主窗體上運行按鈕)來運行該示例程序(通常要先進入代碼所在目錄下):

C:\MyPySide6> python MyPySide6App1.py

順利的話應該會出現以下程序窗口(可以試著拉伸一下窗口看看效果):

 

 

程序運行窗口

 

怎么樣?感覺還不錯吧,簡簡單單8行 Python 代碼,就能生成一個看上去還湊合的 GUI 應用程序了。相信可以大大增強您接下來的 Qt for Python 開發之旅信心吧。

4. 代碼解析

什么?上面的代碼看不懂! 沒關系,我們才剛起步,很多知識還沒學呢。那下面我就對上述代碼進行一個較為詳細的解析,希望能幫助您理解和掌握這些代碼。

(1)首先,導入相關模塊(或類)

  1. from PySide6.QtWidgets import (QApplication, QLabel) 

PySide6 模塊中的子模塊提供對相關 Qt API 的訪問。由于本示例后續代碼中會用到 PySide6.QtWidgets.QApplication 類和 PySide6.QtWidgets.QLabel 類,所以要從 PySide6.QtWidgets 模塊導入 QApplication 類、QLabel 類。

注:還有其他幾種導入方式:

注1:可以根據個人習慣選擇具體的導入方式。本人傾向于選擇最開始的導入方式。

    1. # 從PySide6.QtWidgets模塊導入所有的類,后續代碼可以直接使用相關類 
    2.  from PySide6.QtWidgets import * 
    3.   
    4.  # 導入PySide6.QtWidgets模塊,后續代碼可以直接使用相關類 
    5.  import PySide6.QtWidgets 
    6.   
    7.  # 從PySide6庫中導入QtWidgets模塊,后續代碼在使用相關類時,需要加上該類對應的模塊名 
    8.  from PySide6 import QtWidgets 
  • 注2:在 PySide6 中,一般而言,QtXxxx 代表為 Qt 模塊,QXxxxxx 代表為 Qt 模塊中的類。
  • 注3:關鍵詞 import 后可以跟單個或多個類(用逗號隔開),可以使用括號,也可以不使用括號。
  • 注4:如果想使用 PyQt6 模塊,那么只需將代碼中導入語句的 PySide6 替換為 PyQt6 即可。

(2)其次,創建一個應用程序對象

  1. app = QApplication( [] ) 

使用 QApplication 類創建一個應用程序實例對象app,括號內的[]表示構造時不含傳遞參數。

  • 注1:QApplication 是管理 Qt GUI 應用程序的控制流程和主要設置的類。任何 Qt GUI 應用程序都必須包含一個 QApplication 類的實例對象。對于非 GUI 的 Qt 應用程序,可以使用 QCoreApplication 類。
  • 注2:由于 Qt 可以從命令行接收參數,因此在構造時可以將任何參數傳遞給 QApplication 對象(但要注意需要導入 sys 模塊)

 

  1. import sys 
  2. app = QApplication( sys.argv ) 

(3)接著,創建一個標簽對象作為主窗體

 

  1. label = QLabel("用 PySide6 開發的第一個 GUI 應用程序!", alignment=Qt.AlignCenter) 
  2. label.setStyleSheet("color: blue; font: bold; font-size: 15px;"

通常會使用 QMainWindow 類、或 QWidget 類或 QDialog 類來創建一個應用程序的主窗體。本示例中為簡化直接使用 QLabel 類創建一個標簽對象 label 作為本應用程序的主窗體,并在構造時對該標簽的內容和對齊方式進行初始化設置,然后使用 QLabel 類的 setStyleSheet() 方法設置標簽文本的顏色、粗體和字體大小屬性:

  • ——文本內容:“用 PySide6 開發的第一個 GUI 應用程序!”
  • ——文本位置:(水平和垂直)居中
  • ——文本顏色:藍色
  • ——字體:粗體
  • ——字體大小:15像素

(4)再接著,設置主窗體(即標簽)標題

  1. label.setWindowTitle("PySide6 示例程序"

調用 QLabel 類的 setWindowTitle() 方法設置主窗體(即標簽)的標題("PySide6 示例程序")。

(5)然后,顯示主窗體(即標簽)

  1. label.show() 

調用 QLabel 類的 show() 方法來顯示主窗體(即標簽)。

(6)最后,運行應用程序

  1. app.exec_() 

執行 QApplication 類的 exec_() 方法,將使得 Qt GUI 進入一個主事件循環,直到程序中調用 exit()、quit() 或關閉應用程序的主窗口時才會結束。

注:在主事件循環開始后,它將會接收用戶界面事件以及其他事件源的事件,并向相應的窗口進行分發和處理。此外,它還完成 Qt 應用程序的初始化和應用程序運行結束后的善后處理,并提供會話管理。

結束語

本系列介紹如何在 Python 中使用 Qt for Python 進行 GUI 應用程序開發。

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2011-06-14 14:57:06

QT Python GUI

2009-04-12 08:45:32

Symbian諾基亞移動OS

2010-08-10 15:26:38

Flex應用程序

2011-06-09 09:12:12

QT symbian

2010-08-18 09:23:19

Flash Lite移動應用程序開發

2010-02-26 09:55:22

Python應用程序

2011-05-03 09:14:45

QtOvi商店Symbian

2011-09-07 16:36:00

Qt Widget

2011-09-09 17:24:39

Qt Webkit模塊

2009-07-14 18:10:38

Swing應用程序框架

2011-10-13 16:34:30

MeeGoQt插件

2011-06-09 09:31:40

Qt 實例

2021-09-26 08:30:31

Python應用程序代碼

2010-01-28 09:44:08

C++應用程序

2009-08-24 16:02:10

C# Windows應

2011-06-21 11:10:28

Qt Embedded

2011-07-05 17:07:46

Qt 插件 模塊

2011-07-05 16:59:15

Qt 動態 鏈接庫

2010-02-01 14:05:03

2010-02-22 17:46:57

Python應用程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99久久 | 亚洲精品在线播放 | 黑人精品欧美一区二区蜜桃 | 中文字幕亚洲欧美 | 国产成人福利视频 | 中文字幕国产第一页 | 国产蜜臀97一区二区三区 | 一区二区三区国产 | 久久精品91久久久久久再现 | 成年人视频在线免费观看 | 国产日韩一区二区三区 | 九九福利 | 激情六月天 | 日韩成人免费中文字幕 | 欧美xxxx在线 | 一区二区视频在线 | 精精国产xxxx视频在线 | 懂色tv| 少妇久久久久 | 精品亚洲一区二区三区 | a级片在线观看 | 国产97久久 | 99久久婷婷国产综合精品 | 亚洲综合久久久 | 国产一区二区视频免费在线观看 | 国产精品一区二区三区在线 | 色吊丝2288sds中文字幕 | 久久婷婷国产 | 亚洲伊人久久综合 | 国产999精品久久久影片官网 | 欧美成人精品激情在线观看 | 伊人网综合在线观看 | av网站在线播放 | 亚洲精品888 | 免费av一区二区三区 | 色综合桃花网 | 先锋资源亚洲 | 午夜爱爱毛片xxxx视频免费看 | 中文字幕日本一区二区 | 久久久久久一区 | 91国产在线播放 |