输入对话框基于PyQt4的输入对话框
在寫這篇文章之前,xxx已經(jīng)寫過了幾篇關(guān)于改輸入對話框主題的文章,想要了解的朋友可以去翻一下之前的文章
????天今做了個基于PyQt4的輸入對話框.
????
在程序輸入中,有時會要求同時變改多個參數(shù)值,而且類型也不盡相同,
????
這時面下的模塊比擬完全的處理了這個題問.
????
先看個示例吧.比如我們有三個參數(shù):
????
一個是a,要求輸入的是數(shù)整(int),b要求輸入浮點(diǎn)數(shù)(float),還有一個字符串c,
values={'a':100,'b':3.5,'c':'Strings'} title='QInputBox for Setting Values:' RValues=QInputBox(values,title) print(RValues)#~ {'a': 100, 'c': 'Strings', 'b': 3.5}????示顯的面界如下:
????
????QInputBox模塊的碼代如下:
每日一道理天今陽光很好,坐在窗前,看窗外如此晴朗的天感覺特別舒心,雨過天晴后的世界總給人一種明媚,仿佛陽光照耀在“心田”上空,讓前些天被風(fēng)雨踐踏的花朵重新得到愛的關(guān)懷,重現(xiàn)生命的活力!
#-*- coding:utf-8 -*- #~ #-------------------------------------------------------------------------------- #~ module:wlab #~ FileName=WPyQt4Input.py #~ Funciton:PyQt4的輸入對話框 #~ author:吳徐平 #~ Date:2013-05-03 #~ Email:539688300@qq.com #~ #------------------------------------------------- import sys from PyQt4 import QtGui from PyQt4 import QtCoreclass QInputDialog(QtGui.QDialog):def __init__(self, values,title='Setting Values:',parent=None):'''#~ >>>values={'String':'This is String','float':3.5,'int':15}#~ >>>title='QInputBox for Setting Values:'#~>>>dlg = QInputDialog(values=values,title=title) #~ >>>if ( dlg.exec_() == QtGui.QDialog.Accepted):RValues = dlg.GetModifiedValues() else:RValues = dlg.GetOriginValue() ''' QtGui.QDialog.__init__(self, parent=parent)self.setWindowTitle(title)self.OriginValues=values.copy()self.ModifiedValues=values.copy()self.vbox = QtGui.QVBoxLayout()cnt=0for key in self.ModifiedValues:keyStr=str(key)label=keyStr+' :'KeyLabel=QtGui.QLabel(label)ValueLineEdit=QtGui.QLineEdit(str(self.ModifiedValues[key]))#~ #為件控設(shè)置一個名字,方便使用函數(shù)findchild()查找ValueLineEdit.setObjectName('VLE'+str(cnt)) hbox = QtGui.QHBoxLayout()hbox.addWidget(KeyLabel)hbox.addWidget(ValueLineEdit) self.vbox.addLayout(hbox)cnt=cnt+1self.btn_OK=QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)self.btn_Cancel=QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Cancel)self.btn_OK.clicked.connect(self.accept )self.btn_Cancel.clicked.connect(self.reject) hbox = QtGui.QHBoxLayout() hbox.addWidget(self.btn_OK)hbox.addWidget(self.btn_Cancel)self.vbox.addLayout(hbox)self.setLayout(self.vbox)def GetOriginValue(self):'''#~ if the user click btn_Cancel,then return OriginValues'''return self.OriginValuesdef GetModifiedValues(self):'''#~ if the user click btn_OK,then return self.ModifiedValues'''cnt=0for key in self.ModifiedValues:keyStr=str(key)VLEObjectName='VLE'+str(cnt)VLE=self.findChild((QtGui.QLineEdit, ),VLEObjectName)cnt=cnt+1ovk=self.ModifiedValues[key]if(type(ovk)==int):self.ModifiedValues[key]=int(VLE.text())elif(type(ovk)==float):self.ModifiedValues[key]=float(VLE.text())else:self.ModifiedValues[key]=str(VLE.text()) return self.ModifiedValues#~ #封裝好的參數(shù)輸入對話框 def QInputBox(values,title='Setting Values:'):'''#~ >>>values={'String':'This is String','float':3.5,'int':15}#~ >>>title='QInputBox for Setting Values:'#~ >>>print(QInputBox(values,title))''' app = QtGui.QApplication(sys.argv)dlg = QInputDialog(values=values,title=title) if ( dlg.exec_() == QtGui.QDialog.Accepted):RValues = dlg.GetModifiedValues() else:RValues = dlg.GetOriginValue()return RValues#~ #------------------------------------------------- if __name__ == '__main__': values={'String':'This is String','float':3.5,'int':15}title='QInputBox for Setting Values:'print(QInputBox(values,title))#print(QInputBox(values))
????運(yùn)行效果如下.
????
????
????對話框會主動根據(jù)多個Values的值主動成生窗口件控.
文章結(jié)束給大家分享下程序員的一些笑話語錄: 有一天,一個男人穿越森林的時候,聽到一個細(xì)微的聲音叫住他。他低頭一看,是一只青蛙。
“如果你親我一下,我會變成一個美麗的公主哦。”男人一言不發(fā),把青蛙撿起來,放入口袋。
“如果你親我一下,我會變成一個美麗的公主哦。而且,我會告訴我遇到的每一個人,你是多么聰明和勇敢,你是我的英雄。”男人把青蛙拿出來,對著它微微一笑,又把它放回口袋。
“如果你親我一下,我會變成一個美麗的公主,然后我愿意成為你的愛人一星期。”男人又把青蛙拿出來,對著它微微一笑,把它放回口袋。
“如果你親我一下,我會變成一個美麗的公主,然后我愿意成為你的愛人一年,而且你可以對我做任何事。”再一次,男人把青蛙拿出來,對著它微微一笑,又把它放回口袋。
最后,青蛙無力地問:“我開出了這么好的條件,為什么你還不肯吻我?”男人說:“我是一個程序員,我可沒時間和什么公主鬼混。不過,擁有一個會說話的青蛙,倒是蠻酷的。”
轉(zhuǎn)載于:https://www.cnblogs.com/jiangu66/archive/2013/05/03/3057258.html
總結(jié)
以上是生活随笔為你收集整理的输入对话框基于PyQt4的输入对话框的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转载)Linux下pthread_on
- 下一篇: mysql 简单优化规则