我有两个QMainWindows。窗口2在QListWidget中显示了选项。当选择一个项目并且用户按下按钮时,我需要以某种方式传递一个名为 path 的字符串,我可以在第一个窗口中访问该字符串。
窗口2的缩短代码
class Ui_Select(QtWidgets.QMainWindow):
def setup_Ui(self, SelectOption):
SelectOption.setObjectName("SelectOption")
SelectOption.resize(414, 325)
self.userSelectButtonBox = QtWidgets.QDialogButtonBox(SelectOption)
self.userDisplayList = QtWidgets.QListWidget(SelectUser)
self.userDisplayList.setGeometry(QtCore.QRect(80, 60, 251, 131))
self.userSelectButtonBox.accepted.connect(self.sendPath)
def sendPath(self):
cwd = os.getcwd()
usersLoc = '{0}\\users'.format(cwd)
if not os.path.exists(usersLoc):
os.makedirs(usersLoc)
os.chdir(usersLoc)
cwd = os.getcwd()
path = '{0}\\{1}'.format(cwd, self.userDisplayList.currentItem().text())
def retranslateUi(self, SelectOption):
_translate = QtCore.QCoreApplication.translate
窗口1的缩短代码
class Ui_MainWindow(QtWidgets.QMainWindow):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
self.actionSwitch_Option.triggered.connect(self.userWindow)
windowTwo = self.userWindow()
# open up window two
def userWindow(self):
self.window = QtWidgets.QMainWindow()
self.ui = Ui_Select()
self.ui.setup_Ui(window)
self.window.show()
return self.window
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
我试图在窗口1中弄乱 windowTwo 变量,但我似乎无法理解。我很确定我需要使用Signals / Slots,但是我还没有弄清楚它。我已经读过http://pyqt.sourceforge.net/Docs/PyQt5/signals_slots.html,这些示例确实有意义,但我没有尝试在同一类中连接信号。我需要以某种方式将 path 变量从窗口2移到窗口1。希望获得任何帮助。