python GUI庫圖形界面開發(fā)之PyQt5輸入對(duì)話框QInputDialog詳細(xì)使用方法與實(shí)例
PyQt5輸入對(duì)話框QInputDialog介紹
QInputDialog控件是一個(gè)標(biāo)準(zhǔn)對(duì)話框,有一個(gè)文本框和兩個(gè)按鈕(ok和cancel)組成,當(dāng)用戶單擊ok或enter鍵后,在父窗口可以收集通過QInputDialog控件輸入的信息,QInputDialog控件是QDialog標(biāo)準(zhǔn)對(duì)話框的一部分
在QInpuTDialog控件中可以輸入數(shù)字,字符串或列表中的選項(xiàng),標(biāo)簽用于提示必要的信息
QInputDialog類中常用的方法
方法 | 描述 |
---|---|
getint() | 從控件中獲得標(biāo)準(zhǔn)整數(shù)輸入 |
getDouble() | 從控件中獲得標(biāo)準(zhǔn)浮點(diǎn)數(shù)輸入 |
getText() | 從控件中獲得標(biāo)準(zhǔn)字符串的輸入 |
getItem() | 從控件中獲得列表里的選項(xiàng)輸入 |
QInputDialog使用實(shí)例
import sys from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * class InputDialogDemo(QWidget): def __init__(self,parent=None): super(InputDialogDemo, self).__init__(parent) #表單布局 layout=QFormLayout() #創(chuàng)建按鈕,當(dāng)行文本框并建立按鈕點(diǎn)擊與槽函數(shù)的聯(lián)系,添加到布局中 self.btn1=QPushButton('獲得列表里的選項(xiàng)') self.btn1.clicked.connect(self.getItem) self.Le1=QLineEdit() layout.addRow(self.btn1,self.Le1) # 創(chuàng)建按鈕,當(dāng)行文本框并建立按鈕點(diǎn)擊與槽函數(shù)的聯(lián)系,添加到布局中 self.btn2=QPushButton('獲得字符串') self.btn2.clicked.connect(self.getText) self.le2=QLineEdit() layout.addRow(self.btn2,self.le2) # 創(chuàng)建按鈕,當(dāng)行文本框并建立按鈕點(diǎn)擊與槽函數(shù)的聯(lián)系,添加到布局中 self.btn3 = QPushButton('獲得整數(shù)') self.btn3.clicked.connect(self.getInt) self.le3 = QLineEdit() layout.addRow(self.btn3, self.le3) #設(shè)置主窗口的布局及標(biāo)題 self.setLayout(layout) self.setWindowTitle('Input Dialog例子') def getItem(self): #創(chuàng)建元組并定義初始值 items=('C','C++','C#','JAva','Python') #獲取item輸入的值,以及ok鍵的點(diǎn)擊與否(True 或False) #QInputDialog.getItem(self,標(biāo)題,文本,元組,元組默認(rèn)index,是否允許更改) item,ok=QInputDialog.getItem(self,"select input dialog",'語言列表',items,0,False) if ok and item: #滿足條件時(shí),設(shè)置單行文本框的文本 self.Le1.setText(item) def getText(self): text,ok=QInputDialog.getText(self,'Text Input Dialog','輸入姓名:') if ok: self.le2.setText(str(text)) def getInt(self): num,ok=QInputDialog.getInt(self,'Integer input dualog','輸入數(shù)字') if ok: self.le3.setText(str(num)) if __name__ == '__main__': app=QApplication(sys.argv) demo=InputDialogDemo() demo.show() sys.exit(app.exec_())
允許程序,顯示效果圖如下
代碼分析:
在這個(gè)例子中,在QFormLayour布局管理器中放置了三個(gè)按妞和三個(gè)文本框,當(dāng)單擊按鈕時(shí),將彈出標(biāo)準(zhǔn)對(duì)話框,把按鈕的單擊信號(hào)與自定義的槽函數(shù)進(jìn)行連接
self.btn1.clicked.connect(self.getItem) self.btn2.clicked.connect(self.getText) self.btn3.clicked.connect(self.getInt)
當(dāng)調(diào)用QInputDialog.getItem()函數(shù)時(shí),QInputDialog控件包含一個(gè)QComboBox控件和兩個(gè)按鈕,用戶從QComboBox中選擇一個(gè)選項(xiàng)后,允許用戶確認(rèn)或取消操作
def getItem(self): items=('C','C++','C#','JAva','Python') item,ok=QInputDialog.getItem(self,"select input dialog",'語言列表',items,0,False) if ok and item: #滿足條件時(shí),設(shè)置單行文本框的文本 self.Le1.setText(item)
同理,當(dāng)調(diào)用QInputDialog.getText()函數(shù)時(shí),QInputDialog控件包含一個(gè)文本框和兩個(gè)按鈕,允許用戶輸入字符串
本文詳細(xì)講解了PyQt5輸入對(duì)話框QInputDialog詳細(xì)使用方法與實(shí)例,更多關(guān)于這方面的知識(shí)請查看下面的相關(guān)鏈接
- python GUI庫圖形界面開發(fā)之PyQt5打開保存對(duì)話框QFileDialog詳細(xì)使用方法與實(shí)例
- PyQt5基本控件使用之消息彈出、用戶輸入、文件對(duì)話框的使用方法
- Python 使用PyQt5 完成選擇文件或目錄的對(duì)話框方法
- 對(duì)PyQt5的輸入對(duì)話框使用(QInputDialog)詳解
- PyQt5 窗口切換與自定義對(duì)話框的實(shí)例
- python3+PyQt5+Qt Designer實(shí)現(xiàn)擴(kuò)展對(duì)話框
- PyQt5打開文件對(duì)話框QFileDialog實(shí)例代碼
- Python PyQt5標(biāo)準(zhǔn)對(duì)話框用法示例
- Python之PyQt6對(duì)話框的實(shí)現(xiàn)
相關(guān)文章
淺談Pytorch中autograd的若干(踩坑)總結(jié)
這篇文章主要介紹了Pytorch中autograd的若干(踩坑)總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-05-05詳解Python中RegEx在數(shù)據(jù)處理中的應(yīng)用
正則表達(dá)式(Regular?Expressions,簡稱?RegEx)是一種強(qiáng)大的文本匹配和搜索工具,它在數(shù)據(jù)處理、文本解析和字符串操作中發(fā)揮著關(guān)鍵作用,下面就跟隨小編一起來了解一下RegEx的具體使用吧2024-01-01Python mutiprocessing多線程池pool操作示例
這篇文章主要介紹了Python mutiprocessing多線程池pool操作,結(jié)合實(shí)例形式分析了Python多線程模塊multiprocessing進(jìn)程池相關(guān)操作技巧,需要的朋友可以參考下2019-01-01Python+Plotly繪制精美的數(shù)據(jù)分析圖
Plotly?是目前已知的Python最強(qiáng)繪圖庫,比Echarts還強(qiáng)大許多。它的繪制通過生成一個(gè)web頁面完成,并且支持調(diào)整圖像大小,動(dòng)態(tài)調(diào)節(jié)參數(shù)。本文將利用Plotly繪制精美的數(shù)據(jù)分析圖,感興趣的可以了解一下2022-05-05