Python PyQT5';的输入应用程序对话框未保留在windows 10屏幕上
我正在开发一个PyQt5应用程序,它以字符串格式接收用户的输入,然后在代码中进一步使用该变量。Python PyQT5';的输入应用程序对话框未保留在windows 10屏幕上,python,pyqt5,Python,Pyqt5,我正在开发一个PyQt5应用程序,它以字符串格式接收用户的输入,然后在代码中进一步使用该变量。 问题:在while循环中调用输入框代码时(理想情况下,输入框应该停留并等待用户的输入,从而保持while循环的执行),相反,它不会停留在屏幕上,在windows 10上执行脚本时,它会在几秒钟内闪烁并消失。但是当我单独执行下面提到的代码片段时,这种类型的问题就不会出现了 代码片段 import sys from PyQt5.QtWidgets import QApplication, QWidget,
问题:在while循环中调用输入框代码时(理想情况下,输入框应该停留并等待用户的输入,从而保持while循环的执行),相反,它不会停留在屏幕上,在windows 10上执行脚本时,它会在几秒钟内闪烁并消失。但是当我单独执行下面提到的代码片段时,这种类型的问题就不会出现了 代码片段
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QLabel
def call_qt():
app = QApplication(sys.argv)
gui = QWidget()
text, ok = QInputDialog.getText(gui, "User Input",
"""Do you wish to Continue [Y/N]?""")
#print(text, ok)
if ok:
app.exit()
else:
app.exit()
return text
print(call_qt())
我不知道这个代码片段有什么问题。你能帮我做这个吗?另外,我是PyQt5的新手
混乱:同样的问题在Ubuntu 18上不存在。同样的问题应该在Ubuntu上发生。当您点击OK时,应用程序将自动终止,您将无法看到输出。试试这段代码,它会在小部件上打印结果
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QInputDialog, QVBoxLayout, QLabel)
def call_qt(main_widow):
text, ok = QInputDialog.getText(main_widow, "User Input", "Do you wish to Continue [Y/N]?")
return text, ok
if __name__ == '__main__':
app = QApplication(sys.argv)
main_widow = QWidget()
layout = QVBoxLayout()
label = QLabel()
layout.addWidget(label)
main_widow.setLayout(layout)
main_widow.show()
text, ok = call_qt(main_widow)
# if ok:
# sys.exit()
label.setText(text)
sys.exit(app.exec_())
这部分的问题是windows中的进程处理。执行QT应用程序的线程化,并在while循环中调用此线程。这应该可以解决问题
from queue import Queue
que = Queue()
def call_qt(out_que):
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QLabel
app = QApplication(sys.argv)
gui = QWidget()
text, ok = QInputDialog.getText(gui, "User Input",
"""Do you wish to Continue [Y/N]?""")
#print(text, ok)
if ok:
app.exit()
else:
app.exit()
out_que.put()
while True:
t = Threading.thread(target=call_qt, args=(que,))
t.start()
t.join()
print("text: ",que.get())
我看了你的片段,我的问题似乎不中肯。让我总结一下:我无法运行PyQt5应用程序两次,似乎旧流程仍然存在。我尝试了“app.exit()”、“sys.exit()”、“del-app”。但它似乎仍然不起作用。我从这里了解到了我的问题:基本上,无法在windows中运行两次QT代码,似乎应用程序正在闪烁和消失。