当重新启动插件时,我没有得到主窗口,我得到了弹出窗口

2024-09-26 22:55:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用PyQT在QGIS上开发一个python插件。我的插件包含一个主窗口和一个弹出窗口,当点击主窗口上的一个按钮时会弹出窗口。你知道吗

我的问题是,当我重新启动插件,弹出窗口将显示而不是主窗口。你知道吗

我在堆栈溢出(launch a PyQT window from a main PyQt window, and get the user input?)上发现了这个问题,但它不能帮助我解决问题。你知道吗

你能帮我吗?你知道吗

先谢谢你。你知道吗

编辑添加代码 在我的主窗口中,我调用以启动弹出窗口:

def show(self):

       self.project.load()

       if self.project.tranus_project:
           self.tranus_folder.setText(self.project.tranus_project.path)

       self.activate_launch_button()
       self.launch_options_TRANUS()
       super(OptionsTRANUSDialog, self).show()   

   ......
   def launch_options_TRANUS(self):

       self.get_checked_list()

       if self.checked_list != [] :

           dialog = launch_tranus_dialog.LaunchTRANUSDialog(self.checked_list,self.folder,self.tranus_binaries,parent=self)
           dialog.show()
           result = dialog.exec_()

       self.reinitialise_checked_list()

我的弹出窗口的类定义为:

class LaunchTRANUSDialog(QtGui.QDialog, FORM_CLASS):

    def __init__(self,checked_list,project_directory,tranus_bin_path,parent=None):
        """Constructor."""
        super(LaunchTRANUSDialog, self).__init__(parent)
        self.setupUi(self)

        self.project = parent.project
        self.proj = QgsProject.instance()

        self.tranus_bin_path = tranus_bin_path
        self.project_directory = project_directory
        self.project = parent.project
        self.checked_list = checked_list
        self.is_all_checked = False

        self.tabs = self.findChild(QtGui.QTabWidget, 'tabWidget')

        self.proj = QgsProject.instance()
        #control actions
        self.tabs.blockSignals(True) 
        self.tabs.currentChanged.connect(self.onChange) 
        self.tabs.blockSignals(False) 

 def show(self):
        self.put_tabs()
        super(LaunchTRANUSDialog, self).show() 

Tags: pathselfproject插件defshowlaunchlist

热门问题