基本上,我对pyside2/pyqt在最新版本的python中运行的应用程序有一个启动程序类型的协议。在启动程序中按下按钮后,我希望它关闭当前窗口类并打开下一个窗口(它有自己的类)。在执行此操作时,我希望它向新窗口传递一个文件名(基本上,告诉它要打开哪个文件)。这是我一直在挣扎的部分。下面的代码片段是我到目前为止所拥有的一些代码片段,我认为这些代码片段对于更好地解释这个问题非常重要!你知道吗
class launcherWidget( QMainWindow ) :
def __init__(self) :
#header
QMainWindow.__init__(self)
self.setWindowTitle("Scouting Software Launcher")
#main central table
self.table = QTableWidget(self)
self.table.setColumnCount(3)
self.table.setHorizontalHeaderLabels(["Save Name", "Mod Date","Creation Date"])
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.table.setSelectionBehavior(QAbstractItemView.SelectRows)
self.table.verticalHeader().setVisible(False)
self.fill_table_with_list( listOfSavesLists )
self.table.resize(470,165)
self.table.move(15,50)
self.b4 = QPushButton("Open",self)
self.b4.clicked.connect(self.openSelected) #wip
self.b4.resize(70,25)
self.b4.move(340,225)
self.b5 = QPushButton("View",self)
self.b5.clicked.connect(self.viewSelected) #wip
self.b5.resize(70,25)
self.b5.move(420,225)
def viewSelected ( self ) :
print("placeholder") #THIS POINT TO CALL NEXT FUNCTION (I want to send a string)
def openSelected ( self ) :
print("placeholder")
@Slot()
def exit_app(self, checked):
QApplication.quit()
class viewWindow( QMainWindow ) :
def __init__( self , savename ) : #STRING TRANSFERED = savename
#header
QMainWindow.__init__(self)
self.setWindowTitle("Scouting Software Viewer")
self.openSaveName = str(savename) #deal with arg
@Slot()
def exit_app(self, checked) : #on exit, shutdown properly
QApplication.quit()
def onLaunch () :
app = QApplication(sys.argv)
window = launcherWidget()
window.resize(500,300)
window.show()
sys.exit(app.exec_())
您可以创建一个带有字符串参数的信号,该参数在主窗口关闭时发出,或者在发出信号然后关闭窗口的方法中发出(这是我最可能选择的方式)。你知道吗
至于将信号连接到哪个插槽,这在某种程度上取决于您,您可以有一个全局级别的函数,或者子类QApplication并在那里添加一个方法,或者我确信还有其他方法。你知道吗
相关问题 更多 >
编程相关推荐