最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pyqt5 基本界面組件之inputDialog的使用

 更新時間:2019年06月25日 10:07:05   作者:追逐陽光的風(fēng)  
今天小編就為大家分享一篇Pyqt5 基本界面組件之inputDialog的使用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

QInputDialog類提供了一種簡單方面的對話框來獲得用戶的單個輸入信息,可以是一個字符串,一個Int類型數(shù)據(jù),一個double類型數(shù)據(jù)或是一個下拉列表框的條目。

對應(yīng)的Dialog其中包括一個提示標(biāo)簽,一個輸入控件(若是調(diào)用字符串輸入框,則為一個QLineEdit,若是調(diào)用Int類型或double類型,則為一個QSpinBox,若是調(diào)用列表條目輸入框,則為一個QComboBox),還包括一個確定輸入(Ok)按鈕和一個取消輸入(Cancel)按鈕。

QInputDialog:

class QInputDialog(QDialog)
 | QInputDialog(QWidget parent=None, Qt.WindowFlags flags=0)

QInputDialog同樣繼承自QDialog,提供簡單輸入的對話框,

代碼示例 :

示例代碼如下:

#-*- coding:utf-8 -*-
'''
inputDialog
'''
__author__ = 'Tony Zhu'

from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QInputDialog, QGridLayout, QLabel, QPushButton, QFrame

class InputDialog(QWidget):
  def __init__(self):    
    super(InputDialog,self).__init__()
    self.initUi()

  def initUi(self):
    self.setWindowTitle("項目信息")
    self.setGeometry(400,400,300,260)

    label1=QLabel("項目名稱:")
    label2=QLabel("項目類型:")
    label3=QLabel("項目人員:")
    label4=QLabel("項目成本:")
    label5=QLabel("項目介紹:")

    self.nameLable = QLabel("PyQt5")
    self.nameLable.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    self.styleLable = QLabel("外包")
    self.styleLable.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    self.numberLable = QLabel("40")
    self.numberLable.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    self.costLable = QLabel("400.98")
    self.costLable.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    self.introductionLable = QLabel("服務(wù)外包第三方公司")
    self.introductionLable.setFrameStyle(QFrame.Panel|QFrame.Sunken)

    nameButton=QPushButton("...")
    nameButton.clicked.connect(self.selectName)
    styleButton=QPushButton("...")
    styleButton.clicked.connect(self.selectStyle)
    numberButton=QPushButton("...")
    numberButton.clicked.connect(self.selectNumber)
    costButton=QPushButton("...")
    costButton.clicked.connect(self.selectCost)
    introductionButton=QPushButton("...")
    introductionButton.clicked.connect(self.selectIntroduction)

    mainLayout=QGridLayout()
    mainLayout.addWidget(label1,0,0)
    mainLayout.addWidget(self.nameLable,0,1)
    mainLayout.addWidget(nameButton,0,2)
    mainLayout.addWidget(label2,1,0)
    mainLayout.addWidget(self.styleLable,1,1)
    mainLayout.addWidget(styleButton,1,2)
    mainLayout.addWidget(label3,2,0)
    mainLayout.addWidget(self.numberLable,2,1)
    mainLayout.addWidget(numberButton,2,2)
    mainLayout.addWidget(label4,3,0)
    mainLayout.addWidget(self.costLable,3,1)
    mainLayout.addWidget(costButton,3,2)
    mainLayout.addWidget(label5,4,0)
    mainLayout.addWidget(self.introductionLable,4,1)
    mainLayout.addWidget(introductionButton,4,2)

    self.setLayout(mainLayout)



  def selectName(self):
    name,ok = QInputDialog.getText(self,"項目名稱","輸入項目名稱:",
                    QLineEdit.Normal,self.nameLable.text())
    if ok and (len(name)!=0):
      self.nameLable.setText(name)
  def selectStyle(self):
    list = ["外包","自研"]

    style,ok = QInputDialog.getItem(self,"項目性質(zhì)","請選擇項目性質(zhì):",list)
    if ok :
      self.styleLable.setText(style)

  def selectNumber(self):
    number,ok = QInputDialog.getInt(self,"項目成員","請輸入項目成員人數(shù):",int(self.numberLable.text()),20,100,2)
    if ok :
      self.numberLable.setText(str(number))

  def selectCost(self):
    cost,ok = QInputDialog.getDouble(self,"項目成本","請輸入項目成員人數(shù):",float(self.costLable.text()),100.00,500.00,2)
    if ok :
      self.costLable.setText(str(cost))

  def selectIntroduction(self):
    introduction,ok = QInputDialog.getMultiLineText(self,"項目介紹","介紹:","服務(wù)外包第三方公司 \nPython project")
    if ok :
      self.introductionLable.setText(introduction)



if __name__=="__main__":
  import sys
  app=QApplication(sys.argv)
  myshow=InputDialog()
  myshow.show()
  sys.exit(app.exec_())

運行之后的效果:

示例說明:

通過點擊不同的按鈕,來選擇不同類型的輸入對話框,從而選擇所需的數(shù)據(jù)。

代碼分析:

L18~22:

    label1=QLabel("項目名稱:")
    label2=QLabel("項目類型:")
    label3=QLabel("項目人員:")
    label4=QLabel("項目成本:")
    label5=QLabel("項目介紹:")

定義了數(shù)據(jù)項名稱的標(biāo)簽。

L24~33:

    self.nameLable = QLabel("PyQt5")
    self.nameLable.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    self.styleLable = QLabel("外包")
    self.styleLable.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    self.numberLable = QLabel("40")
    self.numberLable.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    self.costLable = QLabel("400.98")
    self.costLable.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    self.introductionLable = QLabel("服務(wù)外包第三方公司")
    self.introductionLable.setFrameStyle(QFrame.Panel|QFrame.Sunken)

定義了項目數(shù)據(jù)項中的數(shù)據(jù)內(nèi)容,數(shù)據(jù)內(nèi)容顯示在對應(yīng)的標(biāo)簽中。

setFrameStyle()設(shè)定標(biāo)簽的樣式,有如下的樣式:

QFrame.Box

QFrame.Panel

QFrame.WinPanel

QFrame.HLine

QFrame.VLine

QFrame.StyledPanel

QFrame.Sunken

QFrame.Raised

L35~L44:

    nameButton=QPushButton("...")
    nameButton.clicked.connect(self.selectName)
    styleButton=QPushButton("...")
    styleButton.clicked.connect(self.selectStyle)
    numberButton=QPushButton("...")
    numberButton.clicked.connect(self.selectNumber)
    costButton=QPushButton("...")
    costButton.clicked.connect(self.selectCost)
    introductionButton=QPushButton("...")
    introductionButton.clicked.connect(self.selectIntroduction)

實例化QPushButton對象,并將對應(yīng)的clicked信號和自定義的槽函數(shù)綁定起來。

L46~61:

實例化網(wǎng)格布局,并將對應(yīng)的控件添加到網(wǎng)格布局中。

功能分析:

1:獲取項目名稱:

  def selectName(self):
    name,ok = QInputDialog.getText(self,"項目名稱","輸入項目名稱:", QLineEdit.Normal,self.nameLable.text())
    if ok and (len(name)!=0):
      self.nameLable.setText(name)

QInputDialog中很多方法均為靜態(tài)方法,因此不需要實例化直接可以調(diào)用。調(diào)用QInputDialog的getText()函數(shù)彈出標(biāo)準(zhǔn)字符串輸入對話框,getText()函數(shù)原型如下:

 | getText(...)
 |   QInputDialog.getText(QWidget, str, str, QLineEdit.EchoMode echo=QLineEdit.Normal, str text=QString(), Qt.WindowFlags flags=0, Qt.InputMethodHints inputMethodHints=Qt.ImhNone) -> (str, bool)

第1個參數(shù)parent,用于指定父組件;

第2個參數(shù)str,是標(biāo)準(zhǔn)輸入對話框的標(biāo)題名;

第3個參數(shù)str,標(biāo)準(zhǔn)輸入對話框的標(biāo)簽提示;

第4個參數(shù)echo,mode指定標(biāo)準(zhǔn)輸入對話框中QLineEdit控件的輸入模式;

第5個參數(shù)str,標(biāo)準(zhǔn)輸入對話框中QLineEdit控件的默認(rèn)值;

第6個參數(shù)flags,指明標(biāo)準(zhǔn)輸入對話框的窗體標(biāo)識;

第7個參數(shù)inputMethodHints,通過選擇不同的inputMethodHints值來實現(xiàn)不同的鍵盤布局;

單擊nameButton之后的效果:

若用戶單擊了“OK”按鈕,則把新輸入的名稱更新至顯示標(biāo)簽。

2:獲取項目屬性:

  def selectStyle(self):
    list = ["外包","自研"]
    style,ok = QInputDialog.getItem(self,"項目性質(zhì)","請選擇項目性質(zhì):",list)
    if ok :
      self.styleLable.setText(style)

調(diào)用QInputDialog的getItem()函數(shù)彈出標(biāo)準(zhǔn)條目選擇對話框,getItem()函數(shù)原型如下:

 | getItem(...)
 |   QInputDialog.getItem(QWidget, str, str, list-of-str, int current=0, bool editable=True, Qt.WindowFlags flags=0, Qt.InputMethodHints inputMethodHints=Qt.ImhNone) -> (str, bool)

第1個參數(shù)parent,用于指定父組件;

第2個參數(shù)str,是標(biāo)準(zhǔn)條目選擇對話框的標(biāo)題名;

第3個參數(shù)str,標(biāo)準(zhǔn)條目選擇對話框的標(biāo)簽提示;

第4個參數(shù)list-of-str,標(biāo)準(zhǔn)條目選擇對話框中對應(yīng)條目的list;

第5個參數(shù)editable,標(biāo)準(zhǔn)條目選擇對話框條目是否可編輯標(biāo)識,默認(rèn)為不可編輯;

第6個參數(shù)flags,指明標(biāo)準(zhǔn)輸入對話框的窗體標(biāo)識;

第7個參數(shù)inputMethodHints,通過選擇不同的inputMethodHints值來實現(xiàn)不同的鍵盤布局.;

單擊styleButton之后的效果:

若用戶單擊了“OK”按鈕,則把新選擇的類型更新至顯示標(biāo)簽。

3:獲取項目成員:

  def selectNumber(self):
    number,ok = QInputDialog.getInt(self,"項目成員","請輸入項目成員人數(shù):",int(self.numberLable.text()),20,100,2)
    if ok :
      self.numberLable.setText(str(number))

調(diào)用QInputDialog的getInt()函數(shù)彈出標(biāo)準(zhǔn)int類型輸入對話框,getInt()函數(shù)原型如下:

| getInt(...)
|   QInputDialog.getInt(QWidget, str, str, int value=0, int min=-2147483647, int max=2147483647, int step=1, Qt.WindowFlags flags=0) -> (int, bool)

第1個參數(shù)parent,用于指定父組件;

第2個參數(shù)str,是標(biāo)準(zhǔn)int類型輸入對話框的標(biāo)題名;

第3個參數(shù)str,標(biāo)準(zhǔn)int類型輸入對話框的標(biāo)簽提示;

第4個參數(shù)value,標(biāo)準(zhǔn)int類型輸入對話框中的默認(rèn)值;

第5個參數(shù)min,標(biāo)準(zhǔn)int類型輸入對話框中的最小值;

第6個參數(shù)max,標(biāo)準(zhǔn)int類型輸入對話框中的最大值;

第7個參數(shù)step,標(biāo)準(zhǔn)int類型輸入對話框中的步長,即QSpinBox中上下選擇是數(shù)據(jù)變化的步長;

第8個參數(shù)inputMethodHints,通過選擇不同的inputMethodHints值來實現(xiàn)不同的鍵盤布局;

單擊numberButton之后的效果:

若用戶單擊了“OK”按鈕,則把新選擇的成員數(shù)據(jù)更新至顯示標(biāo)簽。

4:獲取項目成本:

  def selectCost(self):
    cost,ok = QInputDialog.getDouble(self,"項目成本","請輸入項目成員人數(shù):",float(self.costLable.text()),100.00,500.00,2)
    if ok :
      self.costLable.setText(str(cost))

調(diào)用QInputDialog的getDouble()函數(shù)彈出標(biāo)準(zhǔn)float類型輸入對話框,getDouble()函數(shù)原型如下:

 | getDouble(...)
 |   QInputDialog.getDouble(QWidget, str, str, float value=0, float min=-2147483647, float max=2147483647, int decimals=1, Qt.WindowFlags flags=0) -> (float, bool)

第1個參數(shù)parent,用于指定父組件;

第2個參數(shù)str,輸入對話框的標(biāo)題名;

第3個參數(shù)str,輸入對話框的標(biāo)簽提示;

第4個參數(shù)value,標(biāo)準(zhǔn)float類型輸入對話框中的默認(rèn)值;

第5個參數(shù)min,標(biāo)準(zhǔn)float類型輸入對話框中的最小值;

第6個參數(shù)max,標(biāo)準(zhǔn)float類型輸入對話框中的最大值;

第7個參數(shù)decimals,小數(shù)點后面保留的位數(shù);

第8個參數(shù)inputMethodHints,通過選擇不同的inputMethodHints值來實現(xiàn)不同的鍵盤布局;

單擊costButton之后的效果:

若用戶單擊了“OK”按鈕,則把新選擇的成本數(shù)據(jù)更新至顯示標(biāo)簽

5:獲取項目介紹:

  def selectIntroduction(self):
    introduction,ok = QInputDialog.getMultiLineText(self,"項目介紹","介紹:","服務(wù)外包第三方公司 \nPython project")
    if ok :
      self.introductionLable.setText(introduction)

調(diào)用QInputDialog的getMultiLineText()函數(shù)彈出標(biāo)準(zhǔn)多行文本類型輸入對話框,getMultiLineText()函數(shù)原型如下:

 | getMultiLineText(...)
 |   QInputDialog.getMultiLineText(QWidget, str, str, str text='', Qt.WindowFlags flags=0, Qt.InputMethodHints inputMethodHints=Qt.ImhNone) -> (str, bool)

第1個參數(shù)parent,用于指定父組件;

第2個參數(shù)str,輸入對話框的標(biāo)題名;

第3個參數(shù)str,輸入對話框的標(biāo)簽提示;

第4個參數(shù)text,輸入對話框中LineEdit的默認(rèn)值;

第5個參數(shù)flags,指明標(biāo)準(zhǔn)輸入對話框的窗體標(biāo)識;

第6個參數(shù)inputMethodHints,通過選擇不同的inputMethodHints值來實現(xiàn)不同的鍵盤布局;

單擊introductionButton之后的效果:

若用戶單擊了“OK”按鈕,則把新修改的項目介紹信息更新至顯示標(biāo)簽

以上這篇Pyqt5 基本界面組件之inputDialog的使用就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Python實現(xiàn)數(shù)據(jù)重采樣的示例代碼

    使用Python實現(xiàn)數(shù)據(jù)重采樣的示例代碼

    數(shù)據(jù)重采樣是一種用于調(diào)整數(shù)據(jù)集大小或分布的技術(shù),它涉及通過增加或減少數(shù)據(jù)點的數(shù)量來修改現(xiàn)有數(shù)據(jù)集,下面我們就來學(xué)習(xí)一下如何利用Python實現(xiàn)數(shù)據(jù)重采樣吧
    2023-11-11
  • 基于python調(diào)用psutil模塊過程解析

    基于python調(diào)用psutil模塊過程解析

    這篇文章主要介紹了基于python調(diào)用psutils模塊過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • python opencv 實現(xiàn)讀取、顯示、寫入圖像的方法

    python opencv 實現(xiàn)讀取、顯示、寫入圖像的方法

    這篇文章主要介紹了python opencv 實現(xiàn)讀取、顯示、寫入圖像的方法,本文通示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • python3中宏HAVE_VFORK的使用

    python3中宏HAVE_VFORK的使用

    本文主要介紹了python3中宏HAVE_VFORK的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Python入門教程(二)Python快速上手

    Python入門教程(二)Python快速上手

    這篇文章主要介紹了Python入門教程(二)Python快速上手,Python是一門非常強大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • python爬蟲請求頭設(shè)置代碼

    python爬蟲請求頭設(shè)置代碼

    在本篇文章里小編給大家整理的是一篇關(guān)于python爬蟲請求頭如何設(shè)置內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • Python實現(xiàn)讀取字符串按列分配后按行輸出示例

    Python實現(xiàn)讀取字符串按列分配后按行輸出示例

    這篇文章主要介紹了Python實現(xiàn)讀取字符串按列分配后按行輸出,涉及Python針對字符串的遍歷、判斷、運算等相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Python深度學(xué)習(xí)線性代數(shù)示例詳解

    Python深度學(xué)習(xí)線性代數(shù)示例詳解

    這篇文章主要為大家講解了Python深度學(xué)習(xí)中線性代數(shù)的示例詳解有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • Python基礎(chǔ)教程(一)——Windows搭建開發(fā)Python開發(fā)環(huán)境

    Python基礎(chǔ)教程(一)——Windows搭建開發(fā)Python開發(fā)環(huán)境

    這篇文章主要介紹了Windows如何搭建開發(fā)Python開發(fā)環(huán)境,幫助大家開始學(xué)習(xí)Python,感興趣的朋友可以了解下
    2020-07-07
  • 關(guān)于Python的一些學(xué)習(xí)總結(jié)

    關(guān)于Python的一些學(xué)習(xí)總結(jié)

    這篇文章主要介紹了關(guān)于Python的一些總結(jié),希望自己以后在學(xué)習(xí)Python的過程中可以邊學(xué)習(xí)邊總結(jié),就自己之前的學(xué)習(xí)先做以總結(jié),之后將不斷總結(jié)更新
    2018-05-05

最新評論

怀柔区| 襄城县| 盈江县| 肥乡县| 浦东新区| 江西省| 天门市| 诸城市| 北票市| 黔西| 额尔古纳市| 马龙县| 长垣县| 黄石市| 民权县| 娱乐| 历史| 晋城| 剑阁县| 汤原县| 黄陵县| 莲花县| 丹凤县| 东阳市| 乃东县| 淮北市| 马龙县| 望都县| 宁都县| 遵义县| 盐山县| 霞浦县| 平塘县| 镇宁| 石楼县| 寻乌县| 汉源县| 彰化市| 宁城县| 濉溪县| 扶沟县|