如何从一个类中获取值并将其传递给单独文件夹中的另一个类?
我提出了阻止申请。用户可以选择选择一个现有项目(load_projekt_file类),也可以创建一个新项目(file_name类)。我想根据已选择的类来获取project_name,并将其传递给具有新类的另一个文件夹。
我的问题是我无法根据类来全局设置project_name。 (将其传递给下一个函数,并使用硬编码的project_name可以正常工作)
这是我的简短代码(我知道它仍然很长,但是应该可以运行):
文件一:
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
project_name = None
class load_projekt_file(QtWidgets.QDialog):
def __init__(self, parent=None):
super(load_projekt_file, self).__init__(parent)
self.setGeometry(350,250,500, 400)
self.list_widget = QtWidgets.QListWidget(self)
self.list_widget.setGeometry(QtCore.QRect(10, 10, 480, 310))
self.line_edit = QtWidgets.QLineEdit(self)
self.line_edit.setGeometry(QtCore.QRect(10, 350, 400, 30))
bpas = ['a','b','c']
self.list_widget.addItems(bpas)
self.list_widget.itemClicked.connect(self.on_itemClicked)
self.load_project = QtWidgets.QPushButton("OK", self)
self.load_project.setGeometry(QtCore.QRect(440, 350, 50, 30))
self.load_project.clicked.connect(self.on_click_load_project)
def on_click_load_project(self):
project_name = self.line_edit.text()
self.close()
@QtCore.pyqtSlot(QtWidgets.QListWidgetItem)
def on_itemClicked(self, item):
self.line_edit.setText(item.text())
class file_name(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(file_name, self).__init__(parent)
self.setGeometry(450, 250, 280, 120) # Fenstergröße festlegen
self.project_name = QtWidgets.QLabel("Name:", self)
self.project_name.setGeometry(QtCore.QRect(10, 10, 100, 30))
self.w_project_name = QtWidgets.QLineEdit(self)
self.w_project_name.setGeometry(QtCore.QRect(10, 40, 250, 30))
self.make_new_project = QtWidgets.QPushButton("OK", self)
self.make_new_project.setGeometry(QtCore.QRect(10, 80, 50, 30))
self.make_new_project.clicked.connect(self.on_click_new_project)
def on_click_new_project (self):
project_name = self.w_project_name.text()
self.close()
class main_window(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(main_window, self).__init__(parent)
self.setGeometry(50, 50, 100, 100)
self.work_file = QtWidgets.QPushButton("A", self)
self.work_file.setGeometry(QtCore.QRect(10, 20, 25, 25))
self.work_file.clicked.connect(self.on_click_a)
self.dialog1 = file_name(self)
self.work_file = QtWidgets.QPushButton("B", self)
self.work_file.setGeometry(QtCore.QRect(45, 20, 25, 25))
self.work_file.clicked.connect(self.on_click_b)
self.dialog2 = load_projekt_file(self)
def on_click_a (self):
self.dialog1.show()
def on_click_b(self):
self.dialog2.show()
def main():
app = QApplication(sys.argv)
ex = main_window()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
文件二: 从file_one导入project_name
class main_v1(QtWidgets.QWidget):
def __init__(self, parent=None):
super(main_v1, self).__init__(parent)
print (project_name)