日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
QtforPython學(xué)習(xí)筆記—應(yīng)用程序初探

前言

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

創(chuàng)新互聯(lián)專注于薛城網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供薛城營銷型網(wǎng)站建設(shè),薛城網(wǎng)站制作、薛城網(wǎng)頁設(shè)計、薛城網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造薛城網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供薛城網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

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

1. 簡介

既然開發(fā)環(huán)境已經(jīng)準(zhǔn)備就緒,那就讓我們通過開發(fā)一個簡單的示例程序來首次探索它。

本示例程序雖然簡單,但會涉及到如下內(nèi)容,希望能幫助初學(xué)者對使用 PySide6 開發(fā) Python GUI 應(yīng)用程序代碼框架有個初步的印象。

  • 如何導(dǎo)入 PySide6 模塊(或類)
  • 如何創(chuàng)建一個應(yīng)用程序(QApplication)對象
  • 如何創(chuàng)建一個標(biāo)簽(QLabel)對象作為主窗口,并在構(gòu)造時設(shè)置其相關(guān)屬性,使用 Qt 樣式表設(shè)置標(biāo)簽屬性。
  • 如何設(shè)置主窗口(即標(biāo)簽)標(biāo)題
  • 如何顯示主窗口(即標(biāo)簽)
  • 如何運行應(yīng)用程序

2. 示例目標(biāo)及原型

我們確定該應(yīng)用程序所設(shè)想達(dá)到的目的,并給出其原型。

一、示例目標(biāo):

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

二、示例原型:

在進(jìn)行 GUI 應(yīng)用程序編碼之前,一般建議先勾畫出 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 開發(fā)的第一個 GUI 應(yīng)用程序!", 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 上點擊主窗體上運行按鈕)來運行該示例程序(通常要先進(jìn)入代碼所在目錄下):

C:\MyPySide6> python MyPySide6App1.py

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

程序運行窗口

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

4. 代碼解析

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

(1)首先,導(dǎo)入相關(guān)模塊(或類)

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

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

注:還有其他幾種導(dǎo)入方式:

注1:可以根據(jù)個人習(xí)慣選擇具體的導(dǎo)入方式。本人傾向于選擇最開始的導(dǎo)入方式。

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

(2)其次,創(chuàng)建一個應(yīng)用程序?qū)ο?/strong>

 
 
 
 
  1. app = QApplication( [] ) 

使用 QApplication 類創(chuàng)建一個應(yīng)用程序?qū)嵗龑ο骯pp,括號內(nèi)的[]表示構(gòu)造時不含傳遞參數(shù)。

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

(3)接著,創(chuàng)建一個標(biāo)簽對象作為主窗體

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

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

  • ——文本內(nèi)容:“用 PySide6 開發(fā)的第一個 GUI 應(yīng)用程序!”
  • ——文本位置:(水平和垂直)居中
  • ——文本顏色:藍(lán)色
  • ——字體:粗體
  • ——字體大?。?5像素

(4)再接著,設(shè)置主窗體(即標(biāo)簽)標(biāo)題

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

調(diào)用 QLabel 類的 setWindowTitle() 方法設(shè)置主窗體(即標(biāo)簽)的標(biāo)題("PySide6 示例程序")。

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

 
 
 
 
  1. label.show() 

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

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

 
 
 
 
  1. app.exec_() 

執(zhí)行 QApplication 類的 exec_() 方法,將使得 Qt GUI 進(jìn)入一個主事件循環(huán),直到程序中調(diào)用 exit()、quit() 或關(guān)閉應(yīng)用程序的主窗口時才會結(jié)束。

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

結(jié)束語

本系列介紹如何在 Python 中使用 Qt for Python 進(jìn)行 GUI 應(yīng)用程序開發(fā)。


分享題目:QtforPython學(xué)習(xí)筆記—應(yīng)用程序初探
URL地址:http://www.dlmjj.cn/article/ccissds.html