QInputDialog.gettext()
返回一個元組: 第一個值是在inputfield(QLineEdit
)的文本,第二個是布爾,True
如果「OK」被別人False
按下。
所以你可以做:
def getText(self):
text = QtWidgets.QInputDialog.getText(self, 'Text Input Dialog', 'Enter your name:')
if text[1]:
username = text[0]
print(username)
編輯2016年3月1日:
,如果你希望用戶從值列表中選擇:
self.selectionList = ['Jim', 'John', 'Harry', 'Charles']
def getSelection(self):
sel = QtWidgets.QInputDialog.getItem(self, 'Text Selection Dialog', 'Select your name:', self.selectionList, current=0, editable=False)
if sel[1]:
username = sel[0]
print(username)
第二編輯:
這裏PyQt4中工作示例:
import sys
from PyQt4 import QtCore, QtGui
class MyWidget(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.setGeometry(200,100,300,300)
self.selectionList = ['Jim', 'John', 'Harry', 'Charles']
self.pushbutton = QtGui.QPushButton('Input', self)
self.pushbutton.setGeometry(50,75, 100, 25)
self.pushbutton1 = QtGui.QPushButton('Select', self)
self.pushbutton1.setGeometry(50,150, 100, 25)
self.pushbutton.clicked.connect(self.getInput)
self.pushbutton1.clicked.connect(self.getSelection)
def getInput(self):
text = QtGui.QInputDialog.getText(self, 'Text Input Dialog', 'Enter your name:')
if text[1]:
username = text[0]
print(username)
def getSelection(self):
sel = QtGui.QInputDialog.getItem(self, 'Text Selection Dialog', 'Select your name:', self.selectionList, current=0, editable=False)
if sel[1]:
username = sel[0]
print(username)
app = QtGui.QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
我得到這個錯誤:「類型錯誤:參數不匹配任何重載電話: QInputDialog.getText(QWidget的,STR,STR,QLineEdit.EchoMode模式= QLineEdit.Normal, (str,bool):參數1有意想不到的類型'bool' QInputDialog.getText(QWidget,str,str,QLineEdit.EchoMode,str,Qt.WindowFlags,Qt.WindowFlags flags = 0) - > Qt.InputMethodHints) - >(str,bool):參數1有意想不到的類型'bool'「 我使用pyQt4是它的問題? –
我無法重現您的錯誤。我在pyqt4中添加了一個工作示例來回答我的問題 –