如何从另一个QMainWindow访问一个QMainWindow的变量?

时间:2018-12-06 19:23:42

标签: python pyqt pyqt5 signals-slots

我有两个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。希望获得任何帮助。

0 个答案:

没有答案