Я новичок в PySide, и я пытаюсь ввести пользователя в текст. Я хочу сохранить его в переменной и использовать в поиске через отдельный скрипт, который у меня есть. Сценарий поиска, который у меня есть, хотя текстовый файл ищет ключевые слова, которые пользователь должен был ввести. Во-первых, я пытаюсь получить вводный текст для хранения в переменной, и я тестирую его, сохраняя его, используя простой оператор печати.Pyside: Как использовать QInputDialog.getText
Как вы увидите ниже, я настроил его так, чтобы окно ввода появилось и пользователь ввел какой-либо текст. Но тогда, если я назову печать за пределами showDialog
, ничего не печатает. Если я печатаю в пределах showDialog
, он отлично работает. Почему они не печатаются вне функции?
Если есть лучший способ сделать это, пожалуйста, не стесняйтесь обучать меня.
import sys
from PySide import QtGui
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.btn = QtGui.QPushButton('test', self)
self.btn.move(20, 20)
self.btn.clicked.connect(self.showDialog)
self.setGeometry(300, 300, 290, 150)
self.setWindowTitle('Input dialog')
self.show()
start = ''
end = ''
number = ''
def showDialog(self):
global start
start = start, ok = QtGui.QInputDialog.getText(self, 'text',
'Enter some text')
global end
end = end, ok = QtGui.QInputDialog.getText(self, "text",
"Enter some text")
global number
number = number, ok = QtGui.QInputDialog.getText(self, "text",
"Enter some text")
# I'm trying to print out the text stored from the input variables.
print start
print end
print number
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Hi Ekhumoro, Спасибо за ваш ответ. Но я хочу, чтобы иметь доступ к входам пользователей вне функции showDialog. В приведенном примере я все же могу получить доступ только к входам пользователей в пределах функции. Как я могу получить доступ к входам пользователей вне функции и класса? – user6534872
@ пользователь6534872. Это не имеет никакого смысла в контексте сценария в вашем ответе. После закрытия окна «Пример» программа завершит работу. Пока окно открыто, единственный способ запускать другой код - это взаимодействие с пользователем, что означает, что вы должны использовать методы класса. – ekhumoro
@ пользователь6534872. Я думаю, что ваш текущий скрипт не структурирован правильно. Все поля ввода должны находиться в главном окне. После того, как пользователь ввел значения, должна быть включена кнопка поиска. Когда нажата кнопка поиска, она запустит ваш поисковый скрипт, и результаты будут показаны в текстовом поле. – ekhumoro