PyQ4标准输入框——QInputDialog(一)
生活随笔
收集整理的這篇文章主要介紹了
PyQ4标准输入框——QInputDialog(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前面講了標準文件對話框,這里就將標準輸入對話框。
同樣地,可以使用該類的靜態方法,也可以自定義輸入對話框。
首先看靜態方法 1.Text方法 原型: (QString, bool?ok) getText (QWidget?parent, QString?title, QString?label, QLineEdit.EchoMode?echo?=?QLineEdit.Normal, QString?text?=?QString(), Qt.WindowFlags?f?=?0) title=窗口標題,label=提示標簽,EchoMode=編輯模式,text=編輯框內的內容
#coding=utf-8 from PyQt4.QtGui import * from PyQt4.QtCore import * import sysapp = QApplication(sys.argv) Text,bool = QInputDialog.getText(None,"this is a static method","this is a tooltip label",QLineEdit.Normal,"Begin!")#用Text,bool分別存儲QString和bool print Text,bool app.exec_()
第二種在編輯框什么都不會顯示,但是可編輯。 第三種像編輯密碼一樣,全部是以*來代替字符。 第四種在編輯的時候會顯示字符,但是打開對話框的編輯框會顯示內容為*
2.Int方法 原型: (int, bool?ok) getInteger (QWidget?parent, QString?title, QString?label, int?value?=?0, int?minValue?=?-2147483647, int?maxValue?=?2147483647, int?step?=?1, Qt.WindowFlags?f?=?0)
title=窗口標題,label=提示標簽, value=設置編輯框顯示的值,minValue=編輯框顯示最小的值,maxValue=編輯框顯示的最大值, step=步長,該編輯框會以QSpinBox的形式顯示。 3.Double方法 原型: (float, bool?ok) getDouble (QWidget?parent, QString?title, QString?label, float?value?=?0, float?minValue?=?-2147483647, float?maxValue?=?2147483647, int?decimals?=?1, Qt.WindowFlags?f?=?0) decimals=顯示的小數點位數
4.Item方法 原型: (QString, bool?ok) getItem (QWidget?parent, QString?title, QString?label, QStringList?list, int?current?=?0, bool?editable?=?True, Qt.WindowFlags?f?=?0) list=事先建好的列表,current=顯示列表內對應序號的值,editable=是否可以直接在編輯框編輯
#coding=utf-8 import sys from PyQt4.QtGui import * from PyQt4.QtCore import * QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8")) class InputDlg(QDialog):def __init__(self,parent=None):super(InputDlg,self).__init__(parent)label1=QLabel(self.tr("姓名"))label2=QLabel(self.tr("性別"))label3=QLabel(self.tr("年齡"))label4=QLabel(self.tr("身高"))self.nameLabel=QLabel("TengWei")self.nameLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)#設置標簽的樣式 self.sexLabel=QLabel(self.tr("男"))self.sexLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)self.ageLabel=QLabel("25")self.ageLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)self.statureLabel=QLabel("168")self.statureLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)nameButton=QPushButton("...")sexButton=QPushButton("...")ageButton=QPushButton("...")statureButton=QPushButton("...")self.connect(nameButton,SIGNAL("clicked()"),self.slotName)self.connect(sexButton,SIGNAL("clicked()"),self.slotSex)self.connect(ageButton,SIGNAL("clicked()"),self.slotAge)self.connect(statureButton,SIGNAL("clicked()"),self.slotStature)layout=QGridLayout()layout.addWidget(label1,0,0)layout.addWidget(self.nameLabel,0,1)layout.addWidget(nameButton,0,2)layout.addWidget(label2,1,0)layout.addWidget(self.sexLabel,1,1)layout.addWidget(sexButton,1,2)layout.addWidget(label3,2,0)layout.addWidget(self.ageLabel,2,1)layout.addWidget(ageButton,2,2)layout.addWidget(label4,3,0)layout.addWidget(self.statureLabel,3,1)layout.addWidget(statureButton,3,2)self.setLayout(layout)self.setWindowTitle(self.tr("資料收集"))def slotName(self):name, ok = QInputDialog.getText(self, self.tr("用戶名"), self.tr("請輸入新的名字:"),QLineEdit.Normal, self.nameLabel.text())print okif ok and (not name.isEmpty()):self.nameLabel.setText(name)def slotSex(self):list=QStringList()list.append(self.tr("男"))list.append(self.tr("女"))sex,ok=QInputDialog.getItem(self,self.tr("性別"),self.tr("請選擇性別"),list,0,False)if ok:self.sexLabel.setText(sex)def slotAge(self):age,ok=QInputDialog.getInteger(self,self.tr("年齡"),self.tr("請輸入年齡"),int(self.ageLabel.text()),0,150)if ok:self.ageLabel.setText(str(age))def slotStature(self):stature,ok=QInputDialog.getDouble(self,self.tr("身高"),self.tr("請輸入身高"),float(self.statureLabel.text()),0.00,2300.00,2)if ok:self.statureLabel.setText(str(stature))app = QApplication(sys.argv) form=InputDlg() form.show() app.exec_()
首先看靜態方法 1.Text方法 原型: (QString, bool?ok) getText (QWidget?parent, QString?title, QString?label, QLineEdit.EchoMode?echo?=?QLineEdit.Normal, QString?text?=?QString(), Qt.WindowFlags?f?=?0) title=窗口標題,label=提示標簽,EchoMode=編輯模式,text=編輯框內的內容
#coding=utf-8 from PyQt4.QtGui import * from PyQt4.QtCore import * import sysapp = QApplication(sys.argv) Text,bool = QInputDialog.getText(None,"this is a static method","this is a tooltip label",QLineEdit.Normal,"Begin!")#用Text,bool分別存儲QString和bool print Text,bool app.exec_()
第二種在編輯框什么都不會顯示,但是可編輯。 第三種像編輯密碼一樣,全部是以*來代替字符。 第四種在編輯的時候會顯示字符,但是打開對話框的編輯框會顯示內容為*
2.Int方法 原型: (int, bool?ok) getInteger (QWidget?parent, QString?title, QString?label, int?value?=?0, int?minValue?=?-2147483647, int?maxValue?=?2147483647, int?step?=?1, Qt.WindowFlags?f?=?0)
title=窗口標題,label=提示標簽, value=設置編輯框顯示的值,minValue=編輯框顯示最小的值,maxValue=編輯框顯示的最大值, step=步長,該編輯框會以QSpinBox的形式顯示。 3.Double方法 原型: (float, bool?ok) getDouble (QWidget?parent, QString?title, QString?label, float?value?=?0, float?minValue?=?-2147483647, float?maxValue?=?2147483647, int?decimals?=?1, Qt.WindowFlags?f?=?0) decimals=顯示的小數點位數
4.Item方法 原型: (QString, bool?ok) getItem (QWidget?parent, QString?title, QString?label, QStringList?list, int?current?=?0, bool?editable?=?True, Qt.WindowFlags?f?=?0) list=事先建好的列表,current=顯示列表內對應序號的值,editable=是否可以直接在編輯框編輯
#coding=utf-8 import sys from PyQt4.QtGui import * from PyQt4.QtCore import * QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8")) class InputDlg(QDialog):def __init__(self,parent=None):super(InputDlg,self).__init__(parent)label1=QLabel(self.tr("姓名"))label2=QLabel(self.tr("性別"))label3=QLabel(self.tr("年齡"))label4=QLabel(self.tr("身高"))self.nameLabel=QLabel("TengWei")self.nameLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)#設置標簽的樣式 self.sexLabel=QLabel(self.tr("男"))self.sexLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)self.ageLabel=QLabel("25")self.ageLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)self.statureLabel=QLabel("168")self.statureLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)nameButton=QPushButton("...")sexButton=QPushButton("...")ageButton=QPushButton("...")statureButton=QPushButton("...")self.connect(nameButton,SIGNAL("clicked()"),self.slotName)self.connect(sexButton,SIGNAL("clicked()"),self.slotSex)self.connect(ageButton,SIGNAL("clicked()"),self.slotAge)self.connect(statureButton,SIGNAL("clicked()"),self.slotStature)layout=QGridLayout()layout.addWidget(label1,0,0)layout.addWidget(self.nameLabel,0,1)layout.addWidget(nameButton,0,2)layout.addWidget(label2,1,0)layout.addWidget(self.sexLabel,1,1)layout.addWidget(sexButton,1,2)layout.addWidget(label3,2,0)layout.addWidget(self.ageLabel,2,1)layout.addWidget(ageButton,2,2)layout.addWidget(label4,3,0)layout.addWidget(self.statureLabel,3,1)layout.addWidget(statureButton,3,2)self.setLayout(layout)self.setWindowTitle(self.tr("資料收集"))def slotName(self):name, ok = QInputDialog.getText(self, self.tr("用戶名"), self.tr("請輸入新的名字:"),QLineEdit.Normal, self.nameLabel.text())print okif ok and (not name.isEmpty()):self.nameLabel.setText(name)def slotSex(self):list=QStringList()list.append(self.tr("男"))list.append(self.tr("女"))sex,ok=QInputDialog.getItem(self,self.tr("性別"),self.tr("請選擇性別"),list,0,False)if ok:self.sexLabel.setText(sex)def slotAge(self):age,ok=QInputDialog.getInteger(self,self.tr("年齡"),self.tr("請輸入年齡"),int(self.ageLabel.text()),0,150)if ok:self.ageLabel.setText(str(age))def slotStature(self):stature,ok=QInputDialog.getDouble(self,self.tr("身高"),self.tr("請輸入身高"),float(self.statureLabel.text()),0.00,2300.00,2)if ok:self.statureLabel.setText(str(stature))app = QApplication(sys.argv) form=InputDlg() form.show() app.exec_()
總結
以上是生活随笔為你收集整理的PyQ4标准输入框——QInputDialog(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PtQt4标准对话框——QFileDia
- 下一篇: 如何使用cd命令