今天就跟大家聊聊有關(guān)如何在PyQt5中使用QInputDialog輸入對話框,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
站在用戶的角度思考問題,與客戶深入溝通,找到安寧網(wǎng)站設(shè)計(jì)與安寧網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋安寧地區(qū)。PyQt5中QInputDialog的使用,Qt的QInputDialog類提供了一種簡單方面的對話框來獲得用戶的單個(gè)輸入信息,它提供了4種數(shù)據(jù)類型的輸入:
1)字符串型(方法=QInputDialog.getText);
2)Int類型數(shù)據(jù)(方法=QInputDialog.getInt);
3)double類型數(shù)據(jù)(方法=QInputDialog.getDouble);
4)下拉列表框的條目(方法=QInputDialog.getItem)。
QInputDialog繼承自QDialog,提供簡單輸入的對話框:
class QInputDialog(QDialog)
| QInputDialog(QWidget parent=None, Qt.WindowFlags flags=0)
QInputDialog簡介:
Qt提供了一個(gè)QInputDialog類,QInputDialogDialog類提供了一種簡單方便的對話框來獲得用戶的單個(gè)輸入信息,目前提供了4種數(shù)據(jù)類型的輸入,可以使一個(gè)字符串、一個(gè)Int類型數(shù)據(jù)、一個(gè)double類型數(shù)據(jù)或者是一個(gè)下拉列表框的條目。一個(gè)標(biāo)準(zhǔn)輸入對話框的基本結(jié)構(gòu)如下圖所示:
其中包含一個(gè)提示標(biāo)簽,一個(gè)輸入控件。如實(shí)調(diào)用字符串輸入框,則為一個(gè)QLineEdit;若是調(diào)用Int類型或都報(bào)了類型輸入框,則為一個(gè)QSpinBox;若是調(diào)用列表?xiàng)l目輸入框,則為一個(gè)QComboBox;還包括一個(gè)確定輸入(OK)按鈕和一個(gè)取消輸入(Cancel)按鈕。
QInputDialog的靜態(tài)函數(shù)
1、getText()
QInputDialog的getText()函數(shù)彈出標(biāo)準(zhǔn)字符串輸入對話框,getText()函數(shù)原型如下:
QString getText( QWidget * parent, #標(biāo)準(zhǔn)輸入對話框的父窗口
const QString & title, #輸入對話框的標(biāo)題名
const QString & label,#標(biāo)準(zhǔn)輸入對話框的標(biāo)簽提示
const QString & text = QString(), #標(biāo)準(zhǔn)字符串輸入對話框彈出時(shí)QLineEdit控件中默認(rèn)出現(xiàn)的文字
bool * ok = 0, #用于指示標(biāo)準(zhǔn)輸入對話框的哪個(gè)按鈕被觸發(fā),若ok為true,則表示用戶單擊了OK(確定)按鈕,若ok為false,則表示用戶單擊了Cancel(取消)按鈕
Qt::WindowFlags flags = 0, #知名標(biāo)準(zhǔn)輸入對話框的窗體標(biāo)識
Qt::InputMethodHints inputMethodHints = Qt::ImhNone ); [static]
2、getItem()
QInputDialog的getItem()函數(shù)彈出標(biāo)準(zhǔn)條目選擇對話框,getItem()函數(shù)原型如下:
QString getItem( QWidget * parent, 標(biāo)準(zhǔn)輸入對話框的父窗口
const QString & title, 標(biāo)準(zhǔn)輸入對話框的標(biāo)題名
const QString & label, 標(biāo)準(zhǔn)輸入對話框的標(biāo)簽提示
const QStringList & list, 指定標(biāo)準(zhǔn)輸入對話框中QComboBox控件顯示的可選條目,為一個(gè)QStringList對象
int current = 0, 指定標(biāo)準(zhǔn)輸入對話框中QComboBox控件顯示的可選條目,為一個(gè)QStringList對象
bool editable = true, 指定QComboBox控件中顯示的文字是否可編輯;
bool * ok = 0, 用于指定標(biāo)準(zhǔn)輸入對話框的哪個(gè)那妞被觸發(fā),若ok為false,則表示用戶單擊了Cancel(取消)按鈕;
Qt::WindowFlags f = 0 ) ; [static]用于指定標(biāo)準(zhǔn)輸入對話框的哪個(gè)那妞被觸發(fā),若ok為false,則表示用戶單擊了Cancel(取消)按鈕;
3、getInteger()
QInputDialog的getInteger()函數(shù)彈出標(biāo)準(zhǔn)int類型輸入對話框,getInteger()函數(shù)原型如下:
int getInteger( QWidget * parent, 父窗口
const QString & title,標(biāo)題名
const QString & label, 標(biāo)簽提示
int value = 0, 指定標(biāo)準(zhǔn)輸入對話框中QSpinBox控件默認(rèn)顯示值
int minValue = -2147483647,
int maxValue = 2147483647, 指定QSpinBoxBox控件的數(shù)值范圍,最小和大值
int step = 1, step指定QSpinBox控件的步進(jìn)值(即步長)
bool * ok = 0,
Qt::WindowFlags f = 0 ) ;
4、getDouble()
QInputDialog的getDouble()函數(shù)彈出標(biāo)準(zhǔn)double類型輸入對話框,getDouble()函數(shù)原型如下:
double getDouble( QWidget * parent,
const QString & title,
const QString & label,標(biāo)簽提示
double value = 0, 指定標(biāo)準(zhǔn)輸入對話框中QSpinBox控件默認(rèn)顯示值
double minValue = -2147483647,
double maxValue 2147483647,
int decimals = 1, 指定QSpinBox控件的浮動數(shù)的小數(shù)點(diǎn)位數(shù)
bool * ok = 0,
Qt::WindowFlags f = 0 ) ;
例子
1)字符串
def getText(self): text, okPressed = QInputDialog.getText(self, "Get text","Your name:", QLineEdit.Normal, "") if okPressed and text != '': print(text)
2)int
def getInteger(self): i, okPressed = QInputDialog.getInt(self, "Get integer","Percentage:", 28, 0, 100, 1) if okPressed: print(i)
3)double
def getDouble(self): d, okPressed = QInputDialog.getDouble(self, "Get double","Value:", 10.05, 0, 100, 10) if okPressed: print(d)
4)條目
def getChoice(self): #Get item/choice items = ("Red","Blue","Green") item, okPressed = QInputDialog.getItem(self, "Get item","Color:", items, 0, False) if okPressed and item: print(item)
簡單例子1【引用出處】:
import sys from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit from PyQt5.QtGui import QIcon class App(QWidget): def __init__(self): super().__init__() self.title = 'PyQt5 input dialogs - pythonspot.com' self.left = 10 self.top = 10 self.width = 640 self.height = 480 self.initUI() def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) self.getInteger() self.getText() self.getDouble() self.getChoice() self.show() def getInteger(self): i, okPressed = QInputDialog.getInt(self, "Get integer","Percentage:", 28, 0, 100, 1) if okPressed: print(i) def getDouble(self): d, okPressed = QInputDialog.getDouble(self, "Get double","Value:", 10.50, 0, 100, 10) if okPressed: print( d) def getChoice(self): items = ("Red","Blue","Green") item, okPressed = QInputDialog.getItem(self, "Get item","Color:", items, 0, False) if ok and item: print(item) def getText(self): text, okPressed = QInputDialog.getText(self, "Get text","Your name:", QLineEdit.Normal, "") if okPressed and text != '': print(text) if __name__ == '__main__': app = QApplication(sys.argv) ex = App() sys.exit(app.exec_())
輸入對話框使用例子2:
方法一>使用代碼創(chuàng)建
————請參考 https://www.jb51.net/article/163860.htm
方法二>使用Qt設(shè)計(jì)器創(chuàng)建
step1:使用Qt設(shè)計(jì)器創(chuàng)建GUI,如下圖:
說明:
第4行控件為:出生年月(label)——label_date——dateButton——Date Edit
最右上角的控件為LineEdit框,用于輸入日期的,這是一個(gè)廢棄的控件,沒有來得及刪除。
圖中第二列(用label顯示)和第四列(用lineEdit顯示)的顯示結(jié)果一樣,且第四列還具有和按鈕控件輸入功能。
step2:保存為.ui文件,并將其轉(zhuǎn)為myinputdialog.py文件,執(zhí)行該文件;
myinputdialog.py文件中的類名為:
class Ui_Dialog(object):
def setupUi(self, Dialog):
step3:新建主函數(shù)文件為myinputdialogmain.py,在此文件中添加如下代碼:
from PyQt5.QtWidgets import * import sys from MyInputDialog2 import Ui_Dialog class MyDialog(QDialog,Ui_Dialog): def __init__(self): super(MyDialog,self).__init__() self.setupUi(self) self.setWindowTitle("輸入對話框?qū)嶒?yàn)") #6個(gè)按鈕 self.nameButton.clicked.connect(self.inputName) self.sexButton.clicked.connect(self.inputSex) self.ageButton.clicked.connect(self.inputAge) self.dateButton.clicked.connect(self.inputDate2) # Date Edit self.dateButton.clicked.connect(self.inputDate1) #對話框 self.HButton.clicked.connect(self.inputHeight) self.WButton.clicked.connect(self.inputWeight) #6個(gè)Label顯示標(biāo)簽 #label_name,label_sex,label_age,label_date,label_h,label_w #7個(gè)LineEdit編輯框用于輸入信息,與上面按鈕具有同樣功能 #namelineEdit,sexlineEdit,agelineEdit,datelineEdit,hlineEdit,wlineEdit,lovelineEdit def inputName(self): name2 = self.namelineEdit.text() name, ok = QInputDialog.getText(self, "用戶名", "請輸入新的名字:", QLineEdit.Normal, self.label_name.text()) if ok: self.label_name.setText(name) self.namelineEdit.setText(name) else: self.label_name.setText(name2) def inputSex(self): list = [] list.append("男") list.append("女") sex, ok = QInputDialog.getItem(self, "性別", "請選擇性別", list) if ok: self.label_sex.setText(sex) self.sexlineEdit.setText(sex) def inputAge(self): age, ok = QInputDialog.getInt(self, "年齡","請輸入年齡:", int(self.label_age.text()), 0, 150,4) if ok: self.label_age.setText(str(age)) self.agelineEdit.setText(str(age)) def inputDate1(self): dd, ok = QInputDialog.getText(self, "出生年月", "請輸入新的出生年月:", QLineEdit.Normal, self.label_date.text()) if ok: self.label_date.setText(dd) self.datelineEdit.setText(dd) def inputDate2(self): time = self.dateEdit.text() self.label_date.setText(str(time)) def inputHeight(self): stature, ok = QInputDialog.getDouble(self, "身高", "請輸入身高:", float(self.label_h.text()), -2300.0000, 2300.9999,4) if ok: self.label_h.setText(str(stature)) self.hlineEdit.setText(str(stature)) def inputWeight(self): stature, ok = QInputDialog.getDouble(self, "身高", "請輸入身高:", float(self.label_w.text()), 0, 2300.00,2) if ok: self.label_w.setText(str(stature)) self.wlineEdit.setText(str(stature)) if __name__ == "__main__": app = QApplication(sys.argv) main = MyDialog() main.show() sys.exit(app.exec_())
看完上述內(nèi)容,你們對如何在PyQt5中使用QInputDialog輸入對話框有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝大家的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享題目:如何在PyQt5中使用QInputDialog輸入對話框-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://vcdvsql.cn/article6/gghig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、App開發(fā)、建站公司、ChatGPT、網(wǎng)站內(nèi)鏈、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容