在python中运行Qt应用程序时,如何在控制台中输入?

在python中运行Qt应用程序时,如何在控制台中输入?,python,qt,python-3.x,pyqt4,Python,Qt,Python 3.x,Pyqt4,在运行PyQt应用程序时,我无法从终端中的用户输入任何内容 实际上,我正在创建一些东西,但我不能在这里显示整个代码,因此这里有代码的main,并且相信我只需要修复它: from PyQt4.QtGui import * import sys def window(): app = QApplication(sys.argv) window = QWidget() btn = QPushButton() btn.setText("Input In Console")

在运行PyQt应用程序时,我无法从终端中的用户输入任何内容

实际上,我正在创建一些东西,但我不能在这里显示整个代码,因此这里有代码的main,并且相信我只需要修复它:

from PyQt4.QtGui import *
import sys
def window():
    app = QApplication(sys.argv)
    window = QWidget()
    btn = QPushButton()
    btn.setText("Input In Console")
    box = QFormLayout()
    box.addRow(btn)
    btn.clicked.connect(input_txt)
    window.setLayout(box)
    window.show()
    sys.exit(app.exec_())

def input_txt():
    input("Enter you Name ")

if __name__ == "__main__":
    window()
当我按下按钮运行时,一个灾难性的循环开始:


我真的尝试了很多配置这个问题的解决方案,但都失败了。希望这些信息能有所帮助,如果你对这篇文章有任何疑问,请在评论中说出来。

我不再需要这些信息,但我仍然在为其他人的问题提供答案

解决方案:使用线程

from PyQt4.QtGui import *
import sys,threading
def window():
    app = QApplication(sys.argv)
    window = QWidget()
    btn = QPushButton()
    btn.setText("Input In Console")
    box = QFormLayout()
    box.addRow(btn)
    btn.clicked.connect(input_txt)
    window.setLayout(box)
    window.show()
    sys.exit(app.exec_())

def input_txt():
    thread = threading.Thread(target=input)
    thread.start()

if __name__ == "__main__":
    window()