在 python 中运行 Qt 应用程序时如何在控制台中输入?
Posted
技术标签:
【中文标题】在 python 中运行 Qt 应用程序时如何在控制台中输入?【英文标题】:How to input in console while running Qt Application in python? 【发布时间】:2016-05-22 11:26:06 【问题描述】:在运行 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()
当我按下按钮运行时,循环的灾难开始了:
我确实尝试了很多配置此问题的解决方案,但都失败了。希望这些信息对您有所帮助,如果对帖子有任何疑问,请在评论中说。
【问题讨论】:
【参考方案1】:我不再需要这个了,但如果其他人有同样的问题,我仍然会发布答案。
解决方案:使用线程
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()
【讨论】:
以上是关于在 python 中运行 Qt 应用程序时如何在控制台中输入?的主要内容,如果未能解决你的问题,请参考以下文章
在启动 Qt5 应用程序的主要 python 脚本之前,如何使用 Pycharm 直接运行资源创建脚本?