Вероятно, я не правильно построил структуру программы, но всё-равно интересно - почему так?
Есть прога из 3-х файлов: собственно экранная форма, основной файл (класс MainApp) и некий дополнительный модуль (класс Docx2array).
Из них выбито всё лишнее. Смысл таков: есть форма с двумя кнопками и текстовым полем. Сразу видна правая кнопка, которая при нажатии должна провести некоторое действие и включить левую кнопку. Это переключение кнопок происходит в дополнительном модуле. Возможно, это всё логически делается не так, но...
В дополнительном модуле не видно ничего из других программ и собственно вся часть проги в доп.модуле не работает.
Когда я смотрю отладчик, то даже self = false
1. Экранная форма из QT Creator - mainwindow.py
2. Основной файл - test1.py
3. Отдельный модуль - test2.py
Есть прога из 3-х файлов: собственно экранная форма, основной файл (класс MainApp) и некий дополнительный модуль (класс Docx2array).
Из них выбито всё лишнее. Смысл таков: есть форма с двумя кнопками и текстовым полем. Сразу видна правая кнопка, которая при нажатии должна провести некоторое действие и включить левую кнопку. Это переключение кнопок происходит в дополнительном модуле. Возможно, это всё логически делается не так, но...
В дополнительном модуле не видно ничего из других программ и собственно вся часть проги в доп.модуле не работает.
Когда я смотрю отладчик, то даже self = false
1. Экранная форма из QT Creator - mainwindow.py
Python:
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(251, 271)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.jobsField = QtWidgets.QTextEdit(self.centralwidget)
self.jobsField.setGeometry(QtCore.QRect(30, 50, 191, 171))
self.jobsField.setMinimumSize(QtCore.QSize(100, 100))
self.jobsField.setObjectName("jobsField")
self.pB_Start = QtWidgets.QPushButton(self.centralwidget)
self.pB_Start.setGeometry(QtCore.QRect(140, 10, 85, 26))
self.pB_Start.setMinimumSize(QtCore.QSize(0, 0))
self.pB_Start.setObjectName("pB_Start")
self.pB_Load = QtWidgets.QPushButton(self.centralwidget)
self.pB_Load.setGeometry(QtCore.QRect(30, 10, 85, 26))
self.pB_Load.setObjectName("pB_Load")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 251, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
Код:
from PyQt6 import QtWidgets, QtGui
from PyQt6.QtWidgets import QApplication
import mainwindow
from test2 import Docx2array
class MainApp(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
name_test = "*.docx"
path_images = "media"
def __init__(self):
super().__init__()
self.setupUi(self)
self.jobsField.setHtml('Test<br>\n')
self.jobsField.setReadOnly(True)
self.pB_Load.clicked.connect(self.browse_test)
self.pB_Load.setText("Load")
self.pB_Start.setText("Start")
self.pB_Start.clicked.connect(Docx2array.beginStep)
def browse_test(self):
d2a.loadData()
if __name__ == "__main__":
global window
app = QApplication([]) # sys.argv
window = MainApp() # Создаём объект класса MainApp
window.show() # Показываем окно
d2a = Docx2array() # не уверен, что это здесь
app.exec() # и запускаем приложение
sys.exit()
Код:
from PyQt6 import QtWidgets, QtGui
import mainwindow
class Docx2array(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
def loadData(self):
self.jobsField.setHtml('Pressed Load<br>\n')
self.pB_Load.setVisible(True)
self.pB_Start.setVisible(False)
def beginStep(self):
global window
window.jobsField.setHtml('Pressed Start<br>\n')
self.pB_Load.setVisible(False)
self.pB_Start.setVisible(True)
Последнее редактирование: