【问题标题】:How to input in console while running Qt Application in python?在 python 中运行 Qt 应用程序时如何在控制台中输入?
【发布时间】:2016-05-22 11:26:06
【问题描述】:

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

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

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()

当我按下按钮运行时,循环的灾难开始了:

我确实尝试了很多配置此问题的解决方案,但都失败了。希望这些信息对您有所帮助,如果对帖子有任何疑问,请在评论中说。

【问题讨论】:

    标签: python qt python-3.x pyqt4


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 2012-07-15
      • 2017-01-03
      • 2014-10-09
      • 1970-01-01
      • 2013-02-16
      • 2011-03-22
      相关资源
      最近更新 更多