日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

前言

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

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

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

1. 簡(jiǎn)介

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

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

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

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

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

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

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

二、示例原型:

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

示例原型

3. 示例代碼及運(yùn)行

一、編輯代碼

利用代碼編輯器編輯示例代碼,并保存為文件(如: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 開(kāi)發(fā)的第一個(gè) 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_() 

二、運(yùn)行程序

從控制臺(tái)終端通過(guò)命令方式(或直接在 Visual Studio Code 上點(diǎn)擊主窗體上運(yùn)行按鈕)來(lái)運(yùn)行該示例程序(通常要先進(jìn)入代碼所在目錄下):

C:\MyPySide6> python MyPySide6App1.py

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

程序運(yùn)行窗口

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

4. 代碼解析

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

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

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

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

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

注1:可以根據(jù)個(gè)人習(xí)慣選擇具體的導(dǎo)入方式。本人傾向于選擇最開(kāi)始的導(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庫(kù)中導(dǎo)入QtWidgets模塊,后續(xù)代碼在使用相關(guān)類時(shí),需要加上該類對(duì)應(yīng)的模塊名 
    8.  from PySide6 import QtWidgets 
  • 注2:在 PySide6 中,一般而言,QtXxxx 代表為 Qt 模塊,QXxxxxx 代表為 Qt 模塊中的類。
  • 注3:關(guān)鍵詞 import 后可以跟單個(gè)或多個(gè)類(用逗號(hào)隔開(kāi)),可以使用括號(hào),也可以不使用括號(hào)。
  • 注4:如果想使用 PyQt6 模塊,那么只需將代碼中導(dǎo)入語(yǔ)句的 PySide6 替換為 PyQt6 即可。

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

 
 
 
 
  1. app = QApplication( [] ) 

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

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

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

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

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

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

(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() 方法來(lái)顯示主窗體(即標(biāo)簽)。

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

 
 
 
 
  1. app.exec_() 

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

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

結(jié)束語(yǔ)

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


網(wǎng)站標(biāo)題:QtforPython學(xué)習(xí)筆記—應(yīng)用程序初探
文章出自:http://www.5511xx.com/article/ccissds.html