Я немного новичок, когда дело доходит до Python, а тем более с PyQt5.С учетом сказанного я не уверен, как двигаться дальше с получаемой ошибкой, и я надеюсь, что кто-то может дать мне некоторую мудрость здесь.
Я пытаюсь подключить файл внешнего тестового скрипта окна PyQt5 кмоя основная структура GUI.Я сделал простой графический интерфейс выпадающего меню с кнопкой, которая должна запускать внешний скрипт, который откроет другое окно.Я пытаюсь выполнить его с помощью этой команды: test_dropButton.action.triggered.connect(testWindowButton)
Я получаю интересную ошибку, которая, кажется, намекает на сбой Python, когда я получаю эту ошибку:
Process finished with exit code -1073740791 (0xC0000409)
и отмое исследование означает, что я мог бы сделать несколько вещей, от попытки вызвать функцию, которая не существует, до PyQt5, которая не выдает исключение правильно.Я не уверен, так ли это, потому что мой пользовательский скрипт окна не имеет функции, которая просто вызывает окно для отображения на экране, однако мой метод init должен делать это при вызове класса, или япросто лох и забыть, что сначала мне нужен конструктор?
Я также видел объяснения этой ошибки как проблемы с многопоточностью, из-за которой попытка запустить внешний скрипт может привести к сбою Python из-за проблем с многопоточностью.Возможно, мне нужно выполнить многопоточность внешнего сценария Python?
В любом случае, может кто-нибудь объяснить мне вышеуказанную ошибку и точно сказать, что происходит и почему она может аварийно завершиться?
Вот мой код:
#This is a snippet of my main GUI structure
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon
import TrainHelloWorld as hi
mainMenu = self.menuBar()
trainMenu = mainMenu.addMenu('Test')
testWindowButton = hi.Greeting()
test_dropButton = QAction('test', self)
test_dropButton.setShortcut('Ctrl+T')
test_dropButton.setStatusTip('Test the button')
test_dropButton.action.triggered.connect(testWindowButton.show())
trainMenu.addAction(test_dropButton) # add test button to dropdown menu
Вот импортированный скрипт:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon
import sys
class Greeting(QMainWindow):
def __init__(self):
super().__init__()
self.title = 'Dummy Hello'
self.left = 10
self.top = 10
self.width = 640
self.height = 400
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
greetingLabel = QLabel()
greetingLabel.setText("You called a Python function in a QAction menu, YOU DID IT!")
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Greeting()
sys.exit(app.exec_())
Я ожидаю, что программа откроет одно главное окно с выпадающим меню с одним меню с надписью«test» с именами кнопок «test», запускающий импортированный скрипт, открывающий другое окно.