Я пытаюсь создать простое приложение, используя Pyqt5. Моя цель, когда я нажимаю кнопку Listen
, открываю другой исполняемый файл (созданный на другой платформе) и проверяю каждую секунду, существует ли a.txt
или нет. Если существует; Я хочу создать новую кнопку на текущем интерфейсе.
Теперь, когда я нажимаю кнопку «Прослушать», я могу открыть другой исполняемый файл (здесь я буду использовать notepad
для минимального примера), и мое приложение всегда начинает проверять a.txt
существует. Через несколько секунд я создаю a.txt
из другого скрипта. Моя проблема в том, Новая кнопка не появляется. Но если я закрою пустой блокнот, появится новая кнопка.
Мой скрипт для простого интерфейса:
from PyQt5 import QtCore, QtWidgets
import sys
import time
import subprocess
import os
class ListenWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super(ListenWindow, self).__init__(parent)
self.setWindowTitle("Listen")
self.button_login = QtWidgets.QPushButton('Listen', self)
font3 = self.button_login.font() # lineedit current font
font3.setPointSize(10) # change it's size
self.button_login.setFont(font3)
self.button_login.setFixedSize(200, 50)
self.button_login.clicked.connect(self.startToListen)
self.v_box1 = QtWidgets.QVBoxLayout(self)
self.v_box1.addWidget(self.button_login)
self.h_box1 = QtWidgets.QHBoxLayout(self)
self.v_box1.addLayout(self.h_box1)
def startToListen(self):
FNULL = open(os.devnull, 'w')
args = "notepad"
subprocess.call(args, stdout=FNULL, stderr=FNULL, shell=False)
while not os.path.exists('C:/Users/Wicaledon/PycharmProjects/abc/a.txt'):
time.sleep(1)
if os.path.isfile('C:/Users/Wicaledon/PycharmProjects/abc/a.txt'):
self.buttonSeq = QtWidgets.QPushButton('Start Sequence', self)
font8 = self.buttonSeq.font() # lineedit current font
font8.setPointSize(10) # change it's size
self.buttonSeq.setFont(font8)
self.buttonSeq.setFixedSize(200, 50)
self.h_box1.addWidget(self.buttonSeq, 0, QtCore.Qt.AlignCenter)
else:
raise ValueError("%s isn't a file!" % 'C:/Users/Wicaledon/PycharmProjects/abc/a.txt')
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = ListenWindow()
window.setWindowTitle('Login')
window.show()
sys.exit(app.exec_())
Мой скрипт для создания a.txt
файла:
f=open("a.txt", "a+")
for i in range(2):
f.write("Appended line %d\r\n" % (i+1))
f.close()
Где моя вина? Вы можете мне помочь?