pyqt5获取文本框里输入的值_实战PyQt5: 060-输入对话框QInputDialog
生活随笔
收集整理的這篇文章主要介紹了
pyqt5获取文本框里输入的值_实战PyQt5: 060-输入对话框QInputDialog
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
QInputDialog簡介
在GUI應(yīng)用中,經(jīng)常有一些簡單的輸入信息需要交互,這時候可以使用QInputDialog來快速完成我們的工作,而不必創(chuàng)建一個新的對話框來實(shí)現(xiàn)。
QInputDialog控件是一個標(biāo)準(zhǔn)對話框,由一個文本框和兩個按鈕(ok和cancel)組成。當(dāng)用戶單擊ok或enter鍵后,在父窗口可以收集通過QInputDialog控件輸入的信息。在QInpuTDialog控件中可以輸入數(shù)字,字符串或列表中的選項。
QInputDialog常用方法有:
- getInt(): 從控件中獲得標(biāo)準(zhǔn)整數(shù)輸入;
- getDouble(): 從控件中獲得標(biāo)準(zhǔn)浮點(diǎn)數(shù)輸入;
- getText(): 從控件中獲得標(biāo)準(zhǔn)字符串的輸入;
- getItem(): 從控件中獲得列表里的選項輸入;
- getMultiLineText(): 從控件中獲得多行文本輸入。
QInputDialog常用信號:
- textValueChanged: 當(dāng)輸入文本發(fā)生改變時,發(fā)射該信號;
- textValueSelected: 當(dāng)輸入文本被選中時,發(fā)射該信號;
- intValueChanged: 當(dāng)輸入的整數(shù)值發(fā)生改變時,發(fā)射該信號;
- intValueSelected: 當(dāng)選中整數(shù)值時,發(fā)射該信號;
- doubleValueChanged: 當(dāng)輸入的浮點(diǎn)數(shù)發(fā)生改變時,發(fā)生該信號;
- doubleValueSelected: 當(dāng)選中浮點(diǎn)數(shù)值時,發(fā)射該信號。
QInputDialog類繼承關(guān)系:
測試QInputDialog
創(chuàng)建文件qinputdialog.py, 分別測試QInputDialog的四個方法:getItem, getText, getInt和getDouble。完整代碼如下:
import?sysfrom?PyQt5?import?QtCore,?QtGui,?QtWidgets#from?PyQt5.QtCore?import?Qtfrom?PyQt5.QtWidgets?import?(QApplication,?QWidget,?QInputDialog,?QFormLayout,?????????????????????????????QPushButton,?QLineEdit)?class?DemoInputDialog(QWidget):????def?__init__(self,?parent=None):????????super(DemoInputDialog,?self).__init__(parent)????????????????????#?設(shè)置窗口標(biāo)題????????self.setWindowTitle('實(shí)戰(zhàn)PyQt5:?QInputDialog?Demo!')??????????????#?設(shè)置窗口大小????????self.resize(320,?240)??????????????self.initUi()????????????def?initUi(self):????????#創(chuàng)建一個表單布局????????mainLayout?=?QFormLayout(self)????????#設(shè)置內(nèi)部控件之間的間隔????????mainLayout.setSpacing(16)????????????????min_width?=?120????????????????btnGetSel?=?QPushButton('列表選擇輸入對話框',?self)????????btnGetSel.setMinimumWidth(min_width)????????btnGetSel.clicked.connect(self.onGetSelItem)????????self.infoSel?=?QLineEdit(self)????????self.infoSel.setReadOnly(True)????????mainLayout.addRow(btnGetSel,?self.infoSel)????????????????btnGetTxt?=?QPushButton('字符串輸入對話框',?self)????????btnGetTxt.setMinimumWidth(min_width)????????btnGetTxt.clicked.connect(self.onGetText)????????self.infoTxt?=?QLineEdit(self)????????self.infoTxt.setReadOnly(True)????????mainLayout.addRow(btnGetTxt,?self.infoTxt)????????????????btnGetInt?=?QPushButton('整數(shù)輸入對話框')????????btnGetInt.setMinimumWidth(min_width)????????btnGetInt.clicked.connect(self.onGetInt)?????????self.infoInt?=?QLineEdit(self)????????self.infoInt.setReadOnly(True)????????mainLayout.addRow(btnGetInt,?self.infoInt)????????????????btnGetDbl?=?QPushButton('浮點(diǎn)數(shù)輸入對話框')????????btnGetDbl.setMinimumWidth(min_width)????????btnGetDbl.clicked.connect(self.onGetDouble)????????self.infoDbl?=?QLineEdit(self)????????self.infoDbl.setReadOnly(True)????????mainLayout.addRow(btnGetDbl,?self.infoDbl)????????????????self.setLayout(mainLayout)????????????def?onGetSelItem(self):????????#創(chuàng)建元組并并定義初始值????????items?=?('C',?'C++',?'C#',?'Java',?'Java?Script',?'Go',?'Python')????????#獲取item輸入的值,以及ok鍵的點(diǎn)擊與否(True?或False)????????item,ok=QInputDialog.getItem(self,"選擇輸入對話框",'語言列表',items,0,False)????????if?ok?and?item:????????????#滿足條件時,設(shè)置單行文本框的文本????????????self.infoSel.setText(item)????????????????def?onGetText(self):????????text,ok=QInputDialog.getText(self,'文本輸入對話框','輸入姓名:')????????if?ok:????????????self.infoTxt.setText(str(text))????????????????def?onGetInt(self):????????num,ok=QInputDialog.getInt(self,'整數(shù)輸入對話框','輸入整數(shù)')????????if?ok:????????????self.infoInt.setText(str(num))????????????????def?onGetDouble(self):????????value,ok=QInputDialog.getDouble(self,'浮點(diǎn)數(shù)輸入對話框','輸入浮點(diǎn)數(shù)')????????if?ok:????????????self.infoDbl.setText(str(value))????????????if?__name__?==?'__main__':????app?=?QApplication(sys.argv)????window?=?DemoInputDialog()????window.show()????sys.exit(app.exec())運(yùn)行結(jié)果如下圖:
測試QInputDialog
本文知識點(diǎn)
- 在一些簡單的輸入信息交互場景下使用QInputDialog可提高開發(fā)效率;
- QInputDialog提供了幾種常用的信息輸入方式;
- 表單QFormLayout的運(yùn)用;
- 設(shè)置按鈕的最小寬度,以對齊按鈕的排列。
喜歡本文內(nèi)容就關(guān)注,收藏,點(diǎn)贊,評論和轉(zhuǎn)發(fā)。
總結(jié)
以上是生活随笔為你收集整理的pyqt5获取文本框里输入的值_实战PyQt5: 060-输入对话框QInputDialog的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python array按行归一化_机器
- 下一篇: 小米申请“小米龙晶”商标,此前小米 14