我在互联网上搜索了大约3个小时,但所有示例都使用了QLineEdit的输入对话框文本。我想将文本链接到一个变量以用于我的列表。
def gettext(self):
text, ok = QInputDialog.getText(self, 'Text Input Dialog', 'Enter your name:')
if ok:
else...
我该怎么办?这是我想要使用的功能。
谢谢!
答案 0 :(得分:1)
QInputDialog.gettext()
返回一个元组:
第一个值是输入字段中的文本(QLineEdit
),第二个值是bool,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)
编辑01.03.2016:
如果您希望用户从值列表中进行选择:
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_())