我想在一个文件__init__.py中创建一个列表,该列表需要接受来自其他两个文件的数据。
该文件首先__init__.py启动第一个文件,用户在其中输入一些数据。
然后他单击“继续”,第一个窗口关闭,然后打开一个新窗口,他在其中执行相同的操作,但是单击“开始”按钮后,第二个窗口关闭,并且在文件中__init__.py有一个列表由先前输入到这两个窗口的数据组成。
我已经将数据收集实现为LineEdit数组,但我不知道如何将它们组合起来并将它们传输到初始文件?
如何实施?
授权.py:
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow
from src.ui.py.OST_authorization import Ui_OST_authorization
class Authorization(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_OST_authorization()
self.ui.setupUi(self)
self.ui.Continue.clicked.connect(self.student_data)
self.show()
def student_data(self) -> dict:
return {"Имя": self.ui.Name.text(), "Фамилия": self.ui.Surname.text(), "Отчество": self.ui.Patronymic.text(),
"Номер и буква класса": self.ui.Class.text(), "Серия": self.ui.Series.text(),
"Номер": self.ui.Number.text()}
if __name__ == "__main__":
app = QApplication(sys.argv)
authorization_window = Authorization()
sys.exit(app.exec())
OST_authorization.py:
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_OST_authorization(object):
def setupUi(self, OST_authorization):
OST_authorization.setObjectName("OST_authorization")
OST_authorization.resize(330, 381)
OST_authorization.setMinimumSize(QtCore.QSize(330, 381))
OST_authorization.setMaximumSize(QtCore.QSize(330, 395))
OST_authorization.setStyleSheet("QLineEdit#Name{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QLineEdit#Surname{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QLineEdit#Patronymic{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QLineEdit#Class{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QLineEdit#Series{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QLineEdit#Number{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QPushButton#Continue{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"")
OST_authorization.setDocumentMode(True)
self.centralwidget = QtWidgets.QWidget(parent=OST_authorization)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.Name = QtWidgets.QLineEdit(parent=self.centralwidget)
self.Name.setEnabled(True)
self.Name.setMinimumSize(QtCore.QSize(312, 35))
self.Name.setMaximumSize(QtCore.QSize(312, 35))
self.Name.setStyleSheet("")
self.Name.setObjectName("Name")
self.gridLayout.addWidget(self.Name, 5, 0, 1, 2)
self.AuthorizationLable = QtWidgets.QLabel(parent=self.centralwidget)
self.AuthorizationLable.setObjectName("AuthorizationLable")
self.gridLayout.addWidget(self.AuthorizationLable, 4, 0, 1, 2)
self.line = QtWidgets.QFrame(parent=self.centralwidget)
self.line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
self.line.setObjectName("line")
self.gridLayout.addWidget(self.line, 8, 0, 1, 2)
self.Class = QtWidgets.QLineEdit(parent=self.centralwidget)
self.Class.setMinimumSize(QtCore.QSize(312, 35))
self.Class.setMaximumSize(QtCore.QSize(312, 35))
self.Class.setObjectName("Class")
self.gridLayout.addWidget(self.Class, 9, 0, 1, 2)
self.line_2 = QtWidgets.QFrame(parent=self.centralwidget)
self.line_2.setFrameShape(QtWidgets.QFrame.Shape.HLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
self.line_2.setObjectName("line_2")
self.gridLayout.addWidget(self.line_2, 10, 0, 1, 2)
self.Series = QtWidgets.QLineEdit(parent=self.centralwidget)
self.Series.setMinimumSize(QtCore.QSize(312, 35))
self.Series.setMaximumSize(QtCore.QSize(312, 35))
self.Series.setObjectName("Series")
self.gridLayout.addWidget(self.Series, 11, 0, 1, 2)
self.Continue = QtWidgets.QPushButton(parent=self.centralwidget)
self.Continue.setMinimumSize(QtCore.QSize(312, 35))
self.Continue.setMaximumSize(QtCore.QSize(312, 35))
self.Continue.setObjectName("Continue")
self.gridLayout.addWidget(self.Continue, 14, 0, 1, 2)
self.line_3 = QtWidgets.QFrame(parent=self.centralwidget)
self.line_3.setFrameShape(QtWidgets.QFrame.Shape.HLine)
self.line_3.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
self.line_3.setObjectName("line_3")
self.gridLayout.addWidget(self.line_3, 13, 0, 1, 2)
self.Patronymic = QtWidgets.QLineEdit(parent=self.centralwidget)
self.Patronymic.setMinimumSize(QtCore.QSize(312, 35))
self.Patronymic.setMaximumSize(QtCore.QSize(312, 35))
self.Patronymic.setObjectName("Patronymic")
self.gridLayout.addWidget(self.Patronymic, 7, 0, 1, 2)
self.Surname = QtWidgets.QLineEdit(parent=self.centralwidget)
self.Surname.setMinimumSize(QtCore.QSize(312, 35))
self.Surname.setMaximumSize(QtCore.QSize(312, 35))
self.Surname.setObjectName("Surname")
self.gridLayout.addWidget(self.Surname, 6, 0, 1, 2)
self.Number = QtWidgets.QLineEdit(parent=self.centralwidget)
self.Number.setMinimumSize(QtCore.QSize(312, 35))
self.Number.setMaximumSize(QtCore.QSize(312, 35))
self.Number.setObjectName("Number")
self.gridLayout.addWidget(self.Number, 12, 0, 1, 2)
OST_authorization.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=OST_authorization)
self.menubar.setGeometry(QtCore.QRect(0, 0, 330, 22))
self.menubar.setObjectName("menubar")
OST_authorization.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=OST_authorization)
self.statusbar.setObjectName("statusbar")
OST_authorization.setStatusBar(self.statusbar)
self.retranslateUi(OST_authorization)
QtCore.QMetaObject.connectSlotsByName(OST_authorization)
def retranslateUi(self, OST_authorization):
_translate = QtCore.QCoreApplication.translate
OST_authorization.setWindowTitle(_translate("OST_authorization", "OST - (демо версия)"))
self.Name.setPlaceholderText(_translate("OST_authorization", "Имя"))
self.AuthorizationLable.setText(_translate("OST_authorization", "<html><head/><body><p><span style=\" font-size:12pt;\">Авторизация</span></p></body></html>"))
self.Class.setPlaceholderText(_translate("OST_authorization", "Номер и буква класса"))
self.Series.setPlaceholderText(_translate("OST_authorization", "Серия"))
self.Continue.setText(_translate("OST_authorization", "Продолжить"))
self.Patronymic.setPlaceholderText(_translate("OST_authorization", "Отчество (при наличии)"))
self.Surname.setPlaceholderText(_translate("OST_authorization", "Фамилия"))
self.Number.setPlaceholderText(_translate("OST_authorization", "Номер"))
任务设置.py:
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow
from src.ui.py.OST_task_settings import Ui_OST_task_settings
class TaskSettings(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_OST_task_settings()
self.ui.setupUi(self)
self.ui.Start.clicked.connect(self.settings_data)
self.show()
def settings_data(self) -> dict:
return {"Код образовательной организации": self.ui.CodeEducationalOrganization.text(),
"Код ППЭ": self.ui.PPECode.text(), "Номер компьютера": self.ui.NumberPC.text(),
"Номер варианта": self.ui.NumberPC.text(), "Код активации": self.ui.CodeActivation.text()}
if __name__ == "__main__":
app = QApplication(sys.argv)
task_settings_window = TaskSettings()
sys.exit(app.exec())
OST_task_settings.py:
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_OST_task_settings(object):
def setupUi(self, OST_task_settings):
OST_task_settings.setObjectName("OST_task_settings")
OST_task_settings.resize(330, 381)
OST_task_settings.setMinimumSize(QtCore.QSize(330, 381))
OST_task_settings.setMaximumSize(QtCore.QSize(330, 395))
OST_task_settings.setStyleSheet("QLineEdit#NumberOption{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QComboBox#SettingsOption{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QLineEdit#CodeActivation{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QLineEdit#CodeEducationalOrganization{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QLineEdit#NumberPC{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QLineEdit#PPECode{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}\n"
"QPushButton#Start{\n"
" min-width: 310px;\n"
" min-height: 33px;\n"
" max-width: 310px;\n"
" max-height: 33px;\n"
"}")
OST_task_settings.setDocumentMode(True)
self.centralwidget = QtWidgets.QWidget(parent=OST_task_settings)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.Start = QtWidgets.QPushButton(parent=self.centralwidget)
self.Start.setMinimumSize(QtCore.QSize(312, 35))
self.Start.setMaximumSize(QtCore.QSize(312, 35))
self.Start.setObjectName("Start")
self.gridLayout.addWidget(self.Start, 10, 0, 1, 1)
self.line_2 = QtWidgets.QFrame(parent=self.centralwidget)
self.line_2.setFrameShape(QtWidgets.QFrame.Shape.HLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
self.line_2.setObjectName("line_2")
self.gridLayout.addWidget(self.line_2, 9, 0, 1, 1)
self.line = QtWidgets.QFrame(parent=self.centralwidget)
self.line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
self.line.setObjectName("line")
self.gridLayout.addWidget(self.line, 7, 0, 1, 1)
self.NumberOption = QtWidgets.QLineEdit(parent=self.centralwidget)
self.NumberOption.setMinimumSize(QtCore.QSize(312, 35))
self.NumberOption.setMaximumSize(QtCore.QSize(312, 35))
self.NumberOption.setObjectName("NumberOption")
self.gridLayout.addWidget(self.NumberOption, 5, 0, 1, 1)
self.line_3 = QtWidgets.QFrame(parent=self.centralwidget)
self.line_3.setFrameShape(QtWidgets.QFrame.Shape.HLine)
self.line_3.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
self.line_3.setObjectName("line_3")
self.gridLayout.addWidget(self.line_3, 4, 0, 1, 1)
self.CodeActivation = QtWidgets.QLineEdit(parent=self.centralwidget)
self.CodeActivation.setMinimumSize(QtCore.QSize(312, 35))
self.CodeActivation.setMaximumSize(QtCore.QSize(312, 35))
self.CodeActivation.setObjectName("CodeActivation")
self.gridLayout.addWidget(self.CodeActivation, 8, 0, 1, 1)
self.SettingsOption = QtWidgets.QComboBox(parent=self.centralwidget)
self.SettingsOption.setMinimumSize(QtCore.QSize(312, 35))
self.SettingsOption.setMaximumSize(QtCore.QSize(312, 35))
self.SettingsOption.setObjectName("SettingsOption")
self.SettingsOption.addItem("")
self.SettingsOption.addItem("")
self.SettingsOption.addItem("")
self.gridLayout.addWidget(self.SettingsOption, 6, 0, 1, 1)
self.PPECode = QtWidgets.QLineEdit(parent=self.centralwidget)
self.PPECode.setMinimumSize(QtCore.QSize(312, 35))
self.PPECode.setMaximumSize(QtCore.QSize(312, 35))
self.PPECode.setObjectName("PPECode")
self.gridLayout.addWidget(self.PPECode, 2, 0, 1, 1)
self.label = QtWidgets.QLabel(parent=self.centralwidget)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.NumberPC = QtWidgets.QLineEdit(parent=self.centralwidget)
self.NumberPC.setMinimumSize(QtCore.QSize(312, 35))
self.NumberPC.setMaximumSize(QtCore.QSize(312, 35))
self.NumberPC.setObjectName("NumberPC")
self.gridLayout.addWidget(self.NumberPC, 3, 0, 1, 1)
self.CodeEducationalOrganization = QtWidgets.QLineEdit(parent=self.centralwidget)
self.CodeEducationalOrganization.setMinimumSize(QtCore.QSize(312, 35))
self.CodeEducationalOrganization.setMaximumSize(QtCore.QSize(312, 35))
self.CodeEducationalOrganization.setObjectName("CodeEducationalOrganization")
self.gridLayout.addWidget(self.CodeEducationalOrganization, 1, 0, 1, 1)
OST_task_settings.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=OST_task_settings)
self.menubar.setGeometry(QtCore.QRect(0, 0, 330, 22))
self.menubar.setObjectName("menubar")
OST_task_settings.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=OST_task_settings)
self.statusbar.setObjectName("statusbar")
OST_task_settings.setStatusBar(self.statusbar)
self.retranslateUi(OST_task_settings)
QtCore.QMetaObject.connectSlotsByName(OST_task_settings)
def retranslateUi(self, OST_task_settings):
_translate = QtCore.QCoreApplication.translate
OST_task_settings.setWindowTitle(_translate("OST_task_settings", "OST - (демо версия)"))
self.Start.setText(_translate("OST_task_settings", "Начать"))
self.NumberOption.setPlaceholderText(_translate("OST_task_settings", "Номер варианта"))
self.CodeActivation.setPlaceholderText(_translate("OST_task_settings", "Код активации"))
self.SettingsOption.setItemText(0, _translate("OST_task_settings", "[Без дополнений]"))
self.SettingsOption.setItemText(1, _translate("OST_task_settings", "Случайный вариант"))
self.SettingsOption.setItemText(2, _translate("OST_task_settings", "Составить вариант"))
self.PPECode.setPlaceholderText(_translate("OST_task_settings", "Код ППЭ"))
self.label.setText(_translate("OST_task_settings", "<html><head/><body><p><span style=\" font-size:12pt;\">Дополнительные данные</span></p></body></html>"))
self.NumberPC.setPlaceholderText(_translate("OST_task_settings", "Номер компьютера"))
self.CodeEducationalOrganization.setPlaceholderText(_translate("OST_task_settings", "Код образовательной организации"))
您错误地命名了变量和方法。
查看PEP 8 – Python 代码风格指南
这可以通过多种方式完成,但通常 使用QStackedWidget 类
QStackedWidget 类提供一堆小部件,其中一次只有一个小部件可见。
QSettings类提供持久的、独立于平台的应用程序设置。
将导入更改为您自己的并尝试
主要.py
授权.py
任务设置.py