python GUI庫圖形界面開發(fā)之PyQt5輸入對話框QInputDialog詳細使用方法與實例
PyQt5輸入對話框QInputDialog介紹
QInputDialog控件是一個標準對話框,有一個文本框和兩個按鈕(ok和cancel)組成,當用戶單擊ok或enter鍵后,在父窗口可以收集通過QInputDialog控件輸入的信息,QInputDialog控件是QDialog標準對話框的一部分
在QInpuTDialog控件中可以輸入數(shù)字,字符串或列表中的選項,標簽用于提示必要的信息
QInputDialog類中常用的方法
| 方法 | 描述 |
|---|---|
| getint() | 從控件中獲得標準整數(shù)輸入 |
| getDouble() | 從控件中獲得標準浮點數(shù)輸入 |
| getText() | 從控件中獲得標準字符串的輸入 |
| getItem() | 從控件中獲得列表里的選項輸入 |
QInputDialog使用實例
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)建按鈕,當行文本框并建立按鈕點擊與槽函數(shù)的聯(lián)系,添加到布局中
self.btn1=QPushButton('獲得列表里的選項')
self.btn1.clicked.connect(self.getItem)
self.Le1=QLineEdit()
layout.addRow(self.btn1,self.Le1)
# 創(chuàng)建按鈕,當行文本框并建立按鈕點擊與槽函數(shù)的聯(lián)系,添加到布局中
self.btn2=QPushButton('獲得字符串')
self.btn2.clicked.connect(self.getText)
self.le2=QLineEdit()
layout.addRow(self.btn2,self.le2)
# 創(chuàng)建按鈕,當行文本框并建立按鈕點擊與槽函數(shù)的聯(lián)系,添加到布局中
self.btn3 = QPushButton('獲得整數(shù)')
self.btn3.clicked.connect(self.getInt)
self.le3 = QLineEdit()
layout.addRow(self.btn3, self.le3)
#設置主窗口的布局及標題
self.setLayout(layout)
self.setWindowTitle('Input Dialog例子')
def getItem(self):
#創(chuàng)建元組并定義初始值
items=('C','C++','C#','JAva','Python')
#獲取item輸入的值,以及ok鍵的點擊與否(True 或False)
#QInputDialog.getItem(self,標題,文本,元組,元組默認index,是否允許更改)
item,ok=QInputDialog.getItem(self,"select input dialog",'語言列表',items,0,False)
if ok and item:
#滿足條件時,設置單行文本框的文本
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_())
允許程序,顯示效果圖如下




代碼分析:
在這個例子中,在QFormLayour布局管理器中放置了三個按妞和三個文本框,當單擊按鈕時,將彈出標準對話框,把按鈕的單擊信號與自定義的槽函數(shù)進行連接
self.btn1.clicked.connect(self.getItem) self.btn2.clicked.connect(self.getText) self.btn3.clicked.connect(self.getInt)
當調(diào)用QInputDialog.getItem()函數(shù)時,QInputDialog控件包含一個QComboBox控件和兩個按鈕,用戶從QComboBox中選擇一個選項后,允許用戶確認或取消操作
def getItem(self):
items=('C','C++','C#','JAva','Python')
item,ok=QInputDialog.getItem(self,"select input dialog",'語言列表',items,0,False)
if ok and item:
#滿足條件時,設置單行文本框的文本
self.Le1.setText(item)
同理,當調(diào)用QInputDialog.getText()函數(shù)時,QInputDialog控件包含一個文本框和兩個按鈕,允許用戶輸入字符串
本文詳細講解了PyQt5輸入對話框QInputDialog詳細使用方法與實例,更多關于這方面的知識請查看下面的相關鏈接
相關文章
淺談Pytorch中autograd的若干(踩坑)總結(jié)
這篇文章主要介紹了Pytorch中autograd的若干(踩坑)總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05
詳解Python中RegEx在數(shù)據(jù)處理中的應用
正則表達式(Regular?Expressions,簡稱?RegEx)是一種強大的文本匹配和搜索工具,它在數(shù)據(jù)處理、文本解析和字符串操作中發(fā)揮著關鍵作用,下面就跟隨小編一起來了解一下RegEx的具體使用吧2024-01-01
Python mutiprocessing多線程池pool操作示例
這篇文章主要介紹了Python mutiprocessing多線程池pool操作,結(jié)合實例形式分析了Python多線程模塊multiprocessing進程池相關操作技巧,需要的朋友可以參考下2019-01-01
Python+Plotly繪制精美的數(shù)據(jù)分析圖
Plotly?是目前已知的Python最強繪圖庫,比Echarts還強大許多。它的繪制通過生成一個web頁面完成,并且支持調(diào)整圖像大小,動態(tài)調(diào)節(jié)參數(shù)。本文將利用Plotly繪制精美的數(shù)據(jù)分析圖,感興趣的可以了解一下2022-05-05

