欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Python Qt的窗體開(kāi)發(fā)的基本操作

 更新時(shí)間:2019年07月14日 14:53:00   作者:大盜梁  
這篇文章主要介紹了詳解Python Qt的窗體開(kāi)發(fā)的基本操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文章采用的是Qt4,是python(x,y) 套件中集成的,為啥不集成Qt5呢,懶得裝啊:)

正文:

首先看成品:

這個(gè)程序的功能是輸入原價(jià)和降價(jià)的百分比,計(jì)算出最后的價(jià)格。

設(shè)計(jì)器部分

然后就是開(kāi)發(fā)階段了,首先在Qt Designer中建立一個(gè)窗體,大概像圖片中的樣子,然后將控件都拖進(jìn)去

其中,“原價(jià)是多少啊”,“綠色的標(biāo)標(biāo)”這些文字類的控件是QLabel,第一個(gè)框框是QTextEdit,第二個(gè)標(biāo)標(biāo)是QDoubleSpinBox,或者使用QSpinBox都行,兩者主要是數(shù)字類型的不同,

提交按鈕是QPushButton,這里主要是想嘗試一下不同的控件,接下來(lái)點(diǎn)擊在圖片框上的QLabel,然后在屬性編輯器中將objectName命名為 labelResult ,QTextEdit命名為textPrice,QDoubleSpinBox

命名為dSBPer ,QPushButton命名為btnSub如圖:

這樣的命名方式并沒(méi)有什么特殊含義,只不過(guò)能夠讓鄙人記得更牢一些,以防止程序打到一半來(lái)回的看設(shè)計(jì)器。

這里有個(gè)比較麻煩的東西 ------------ 圖片框

圖片顯示本身是QLabel,所以顯示圖片需要先在設(shè)計(jì)器中放置一個(gè)QLbel控件,改控件在程序中沒(méi)有改動(dòng),所以名字默認(rèn)就好,接下來(lái)還需要在資源管理器中添加資源文件,如圖:

在Qt設(shè)計(jì)器中,只需在QLabel控件的pixmap屬性中載入即可,支持的文件可訪問(wèn)Qt的文檔,我會(huì)在文章后面貼出

值得注意的是,資源文件在程序中的使用需要編譯為.py文件

編譯的代碼如下:

pyrcc4 -o a1_rc.py a1.qrc

程序部分

現(xiàn)在就開(kāi)始程序部分的編輯了

第一步先導(dǎo)入有關(guān)Qt的庫(kù)

import sys
from PyQt4 import QtCore,QtGui,uic

然后創(chuàng)建Window初始化

qtCreatorFile = "" #.ui Window File

Ui_MainWindow,QtBaseClass = uic.loadUiType(qtCreatorFile)

接下來(lái)是基礎(chǔ)類的編寫(xiě)

class MyApp(QtGui.QMainWindow,Ui_MainWindow):
  def __init__(self):
    QtGui.QMainWindow.__init__(self)
    Ui_MainWindow.__init__(self)
    self.setupUi(self)
    self.btnSub.clicked.connect(self.CalculateTax)

其中"self.btnSub.clicked.connect(self.CalculateTax)"中,btnSub是按鈕的名稱,clicked.connect是按鈕的點(diǎn)擊事件要執(zhí)行的函數(shù)的連接,CalculateTax是我自己寫(xiě)的點(diǎn)擊的函數(shù),他將會(huì)在按鈕被點(diǎn)擊后調(diào)用

if __name__ == "__main__":
  app = QtGui.QApplication(sys.argv)
  window = App()
  window.show()
  sys.exit(app.exec_())

這一行在主程序中,是程序執(zhí)行時(shí)顯示窗體的操作

接下來(lái)就開(kāi)始寫(xiě)CalculateTax(self)函數(shù)了,它放在App類中:

def CalculateTax(self):
    price = int(self.textPrice.toPlainText())
    tax = float(self.dSBPer.value())
    total_price = price-((tax/100)*price)
    total_price_string = u"你要記得你要花多少錢(qián),預(yù)計(jì)的價(jià)格很便宜?。?+str(total_price) +u"塊"+"\n"+u"看到?jīng)]有,還不快買(mǎi)"
    self.labelResult.setText(total_price_string )

"textPrice.toPlainText()"其中textPrice是控件的名稱,toPlainText()是控件的方法,這是獲取控件的文本內(nèi)容,函數(shù)具體的詳細(xì)信息可以在Qt文檔中查詢,后面控件同理

有一點(diǎn)是在Qt中,如果中文顯示亂碼,需要將中文轉(zhuǎn)為指定的編碼,具體情況需要看程序的編碼,在本代碼中字符串前加u可直接轉(zhuǎn)碼。

# -*- coding: UTF-8 -*-

import sys
from PyQt4 import QtCore,QtGui,uic



qtCreatorFile = "untitled.ui" #Window File

Ui_MainWindow,QtBaseClass = uic.loadUiType(qtCreatorFile)

class App(QtGui.QMainWindow,Ui_MainWindow):
  def __init__(self):
    QtGui.QMainWindow.__init__(self)
    Ui_MainWindow.__init__(self)
    self.setupUi(self)
    self.btnSub.clicked.connect(self.CalculateTax)

  def CalculateTax(self):
    price = int(self.textPrice.toPlainText())
    tax = float(self.dSBPer.value())
    total_price = price-((tax/100)*price)
    total_price_string = u"你要記得你要花多少錢(qián),預(yù)計(jì)的價(jià)格很便宜?。?+str(total_price) +u"塊"+"\n"+u"看到?jīng)]有,還不快買(mǎi)"
    self.labelResult.setText(total_price_string )
    
    
    
if __name__ == "__main__":
  app = QtGui.QApplication(sys.argv)
  window = App()
  window.show()
  sys.exit(app.exec_())

后面附上Qt官方文檔網(wǎng)頁(yè):

http://doc.qt.io/qt-5/classes.html

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django CBV與FBV原理及實(shí)例詳解

    Django CBV與FBV原理及實(shí)例詳解

    這篇文章主要介紹了Django CBV與FBV原理及實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python實(shí)現(xiàn)小世界網(wǎng)絡(luò)生成

    python實(shí)現(xiàn)小世界網(wǎng)絡(luò)生成

    今天小編就為大家分享一篇python實(shí)現(xiàn)小世界網(wǎng)絡(luò)生成,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python傳遞參數(shù)的多種方式(小結(jié))

    Python傳遞參數(shù)的多種方式(小結(jié))

    這篇文章主要介紹了Python傳遞參數(shù)的多種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 有關(guān)wxpython pyqt內(nèi)存占用問(wèn)題分析

    有關(guān)wxpython pyqt內(nèi)存占用問(wèn)題分析

    一直覺(jué)得wxpython占用內(nèi)存比較多,在工作中寫(xiě)的一些小程序應(yīng)用,一對(duì)比其它的小程序,發(fā)現(xiàn)內(nèi)存相差確實(shí)有點(diǎn)大
    2014-06-06
  • Python圖像處理之圖像算術(shù)與邏輯運(yùn)算詳解

    Python圖像處理之圖像算術(shù)與邏輯運(yùn)算詳解

    這篇文章將詳細(xì)講解圖像算法運(yùn)算與邏輯運(yùn)算,包括圖像加法、圖像減法、圖像與運(yùn)算、圖像或運(yùn)算、圖像非運(yùn)算與圖像異或運(yùn)算。感興趣的可以了解一下
    2022-01-01
  • Python3 XML 獲取雅虎天氣的實(shí)現(xiàn)方法

    Python3 XML 獲取雅虎天氣的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇Python3 XML 獲取雅虎天氣的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 淺談使用Python內(nèi)置函數(shù)getattr實(shí)現(xiàn)分發(fā)模式

    淺談使用Python內(nèi)置函數(shù)getattr實(shí)現(xiàn)分發(fā)模式

    這篇文章主要介紹了淺談使用Python內(nèi)置函數(shù)getattr實(shí)現(xiàn)分發(fā)模式,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Django把SQLite數(shù)據(jù)庫(kù)轉(zhuǎn)換為Mysql數(shù)據(jù)庫(kù)的過(guò)程

    Django把SQLite數(shù)據(jù)庫(kù)轉(zhuǎn)換為Mysql數(shù)據(jù)庫(kù)的過(guò)程

    之前我們默認(rèn)使用的是SQLite數(shù)據(jù)庫(kù),我們開(kāi)發(fā)完成之后,里面有許多數(shù)據(jù),如果我們想轉(zhuǎn)換成Mysql數(shù)據(jù)庫(kù),那我們先得把舊數(shù)據(jù)從SQLite導(dǎo)出,然后再導(dǎo)入到新的Mysql數(shù)據(jù)庫(kù)里去,這篇文章主要介紹了Django如何把SQLite數(shù)據(jù)庫(kù)轉(zhuǎn)換為Mysql數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2023-05-05
  • Django搭建MySQL主從實(shí)現(xiàn)讀寫(xiě)分離

    Django搭建MySQL主從實(shí)現(xiàn)讀寫(xiě)分離

    本文主要介紹了Django搭建MySQL主從實(shí)現(xiàn)讀寫(xiě)分離,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • python timestamp和datetime之間轉(zhuǎn)換詳解

    python timestamp和datetime之間轉(zhuǎn)換詳解

    這篇文章主要為大家詳細(xì)介紹了python timestamp和datetime之間轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評(píng)論