Python PyQt ошибка 0xC0000409 почему?
Кто может подсказать, почему выдает ошибку 0xC0000409 при нажатии кнопки?
Даже не выпадает окно выбора папки.
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.knopka = QtWidgets.QPushButton(self.centralwidget)
self.knopka.setGeometry(QtCore.QRect(90, 100, 201, 101))
self.knopka.setObjectName("knopka")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.knopka.clicked.connect(self.getDirectory)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.knopka.setText(_translate("MainWindow", "PushButton"))
def getDirectory(self): # <-----
dirlist = QFileDialog.getExistingDirectory(self, "Выбрать папку", ".")
self.plainTextEdit.appendHtml("<br>Выбрали папку: <b>{}</b>".format(dirlist))
print(dirlist)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
НИКОГДА НЕ ИЗМЕНЯЙТЕ код, сгенерированный Qt Designer, НИКОГДА.
Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.
Всегда запускайте приложение в CMD/консоли/терминале и вы получите реальную ошибку.
'''
from PyQt6 import QtCore, QtGui, QtWidgets
'''
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.knopka = QtWidgets.QPushButton(self.centralwidget)
self.knopka.setGeometry(QtCore.QRect(90, 100, 201, 101))
self.knopka.setObjectName("knopka")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
# self.knopka.clicked.connect(self.getDirectory)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.knopka.setText(_translate("MainWindow", "PushButton"))
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.knopka.clicked.connect(self.getDirectory)
self.plainTextEdit = QtWidgets.QPlainTextEdit(self) # +++
self.plainTextEdit.setGeometry(330, 100, 400, 300) # +++
def getDirectory(self):
# --------------> vvvvvvvvvv <---------------------------------------
dirlist = QtWidgets.QFileDialog.getExistingDirectory(
self, "Выбрать папку", ".")
self.plainTextEdit.appendHtml(
"<br>Выбрали папку: <b>{}</b>".format(dirlist))
print(dirlist)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec())