I designed a main window that contains 1 tableView and 3 dockWidgets.<br><br>If I use it on top of other windows, it works fine.<br><br>If I let it under other windows, when recall it on top, I find the 3 dockWidget gone (they automatically closed), and if I reopen them manually (through a menu action) they come up correctly and I find all the text that my application output meanwhile  into them.<br>
<br>Why does this happen?<br>What did I do wrong?<br><br>I found out that this behaviour doesn&#39;t depend on my application.<br>If I just run the window alone (only the ui file, I mean) I get a similar behaviour.<br>1) I run the script and I get  1 tableView and 3 dockWidgets<br>
2) I minimize the window<br>3) I reopen the window and the&nbsp; 3 dockWidgets are gone.<br><br>Please help.<br><br>This is my pyui file:<br><br>from PyQt4 import QtCore, QtGui<br><br>class Ui_MainWindow(object):<br>&nbsp;&nbsp;&nbsp; def setupUi(self, MainWindow):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MainWindow.setObjectName(&quot;MainWindow&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MainWindow.resize(QtCore.QSize(QtCore.QRect(0,0,800,600).size()).expandedTo(MainWindow.minimumSizeHint()))<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.centralwidget = QtGui.QWidget(MainWindow)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.centralwidget.setObjectName(&quot;centralwidget&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout = QtGui.QGridLayout(self.centralwidget)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout.setObjectName(&quot;gridlayout&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.splitter = QtGui.QSplitter(self.centralwidget)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.splitter.setOrientation(QtCore.Qt.Vertical)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.splitter.setObjectName(&quot;splitter&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.tvLog = QtGui.QTableView(self.splitter)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.tvLog.setSortingEnabled(True)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.tvLog.setObjectName(&quot;tvLog&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_log = QtGui.QDockWidget(self.splitter)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_log.setObjectName(&quot;dockWidget_log&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidgetContents_log = QtGui.QWidget(self.dockWidget_log)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidgetContents_log.setObjectName(&quot;dockWidgetContents_log&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout1 = QtGui.QGridLayout(self.dockWidgetContents_log)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout1.setObjectName(&quot;gridlayout1&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textBrowser_log = QtGui.QTextBrowser(self.dockWidgetContents_log)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font = QtGui.QFont()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font.setFamily(&quot;Monospace&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textBrowser_log.setFont(font)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textBrowser_log.setLineWrapMode(QtGui.QTextEdit.NoWrap)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textBrowser_log.setTabStopWidth(255)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textBrowser_log.setAcceptRichText(False)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textBrowser_log.setOpenLinks(False)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textBrowser_log.setObjectName(&quot;textBrowser_log&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout1.addWidget(self.textBrowser_log,0,0,1,1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_log.setWidget(self.dockWidgetContents_log)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_out = QtGui.QDockWidget(self.splitter)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_out.setObjectName(&quot;dockWidget_out&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidgetContents_err_2 = QtGui.QWidget(self.dockWidget_out)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidgetContents_err_2.setObjectName(&quot;dockWidgetContents_err_2&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout2 = QtGui.QGridLayout(self.dockWidgetContents_err_2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout2.setObjectName(&quot;gridlayout2&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit_out = QtGui.QTextEdit(self.dockWidgetContents_err_2)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit_out.setLineWrapMode(QtGui.QTextEdit.NoWrap)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit_out.setReadOnly(True)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit_out.setObjectName(&quot;textEdit_out&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout2.addWidget(self.textEdit_out,0,0,1,1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_out.setWidget(self.dockWidgetContents_err_2)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_err = QtGui.QDockWidget(self.splitter)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_err.setObjectName(&quot;dockWidget_err&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidgetContents_err = QtGui.QWidget(self.dockWidget_err)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidgetContents_err.setObjectName(&quot;dockWidgetContents_err&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout3 = QtGui.QGridLayout(self.dockWidgetContents_err)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout3.setObjectName(&quot;gridlayout3&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit_err = QtGui.QTextEdit(self.dockWidgetContents_err)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit_err.setLineWrapMode(QtGui.QTextEdit.NoWrap)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit_err.setReadOnly(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit_err.setObjectName(&quot;textEdit_err&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout3.addWidget(self.textEdit_err,0,0,1,1)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_err.setWidget(self.dockWidgetContents_err)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.gridlayout.addWidget(self.splitter,0,0,1,1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MainWindow.setCentralWidget(self.centralwidget)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menubar = QtGui.QMenuBar(MainWindow)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menubar.setGeometry(QtCore.QRect(0,0,800,29))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menubar.setObjectName(&quot;menubar&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuTask = QtGui.QMenu(self.menubar)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuTask.setObjectName(&quot;menuTask&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuLogging = QtGui.QMenu(self.menubar)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuLogging.setObjectName(&quot;menuLogging&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler = QtGui.QMenu(self.menuLogging)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.setObjectName(&quot;menuAdd_handler&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuStart_log_msg = QtGui.QMenu(self.menuLogging)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuStart_log_msg.setObjectName(&quot;menuStart_log_msg&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuHelp = QtGui.QMenu(self.menubar)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuHelp.setObjectName(&quot;menuHelp&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuView = QtGui.QMenu(self.menubar)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuView.setObjectName(&quot;menuView&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MainWindow.setMenuBar(self.menubar)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.statusbar = QtGui.QStatusBar(MainWindow)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.statusbar.setObjectName(&quot;statusbar&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MainWindow.setStatusBar(self.statusbar)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionExit = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionExit.setObjectName(&quot;actionExit&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStop = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStop.setObjectName(&quot;actionStop&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionRemove_handler = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionRemove_handler.setObjectName(&quot;actionRemove_handler&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionAbout = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionAbout.setObjectName(&quot;actionAbout&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_output = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_output.setCheckable(True)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_output.setObjectName(&quot;actionStd_output&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_error = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_error.setCheckable(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_error.setObjectName(&quot;actionStd_error&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFile = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFile.setCheckable(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFile.setObjectName(&quot;actionFile&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCircular_file = QtGui.QAction(MainWindow)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCircular_file.setCheckable(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCircular_file.setObjectName(&quot;actionCircular_file&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCyclic_file = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCyclic_file.setCheckable(True)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCyclic_file.setObjectName(&quot;actionCyclic_file&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_server = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_server.setCheckable(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_server.setObjectName(&quot;actionLog_server&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_widget = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_widget.setChecked(False)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_widget.setObjectName(&quot;actionLog_widget&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionError_widget = QtGui.QAction(MainWindow)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionError_widget.setChecked(False)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionError_widget.setObjectName(&quot;actionError_widget&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionOutput_widget = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionOutput_widget.setObjectName(&quot;actionOutput_widget&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_output_v = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_output_v.setCheckable(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_output_v.setChecked(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_output_v.setObjectName(&quot;actionStd_output_v&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_error_v = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_error_v.setCheckable(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_error_v.setChecked(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_error_v.setObjectName(&quot;actionStd_error_v&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLogging_v = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLogging_v.setCheckable(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLogging_v.setChecked(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLogging_v.setObjectName(&quot;actionLogging_v&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStdOutput = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStdOutput.setCheckable(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStdOutput.setObjectName(&quot;actionStdOutput&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStdError = QtGui.QAction(MainWindow)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStdError.setCheckable(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStdError.setObjectName(&quot;actionStdError&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionDebug = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionDebug.setObjectName(&quot;actionDebug&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionInfo = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionInfo.setObjectName(&quot;actionInfo&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionWarning = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionWarning.setObjectName(&quot;actionWarning&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionError = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionError.setObjectName(&quot;actionError&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFault = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFault.setObjectName(&quot;actionFault&quot;)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCustom = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCustom.setObjectName(&quot;actionCustom&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_log = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_log.setCheckable(True)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_log.setObjectName(&quot;actionLog_log&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionTrace = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionTrace.setObjectName(&quot;actionTrace&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFile_v = QtGui.QAction(MainWindow)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFile_v.setCheckable(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFile_v.setObjectName(&quot;actionFile_v&quot;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStart_server = QtGui.QAction(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStart_server.setCheckable(True)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStart_server.setObjectName(&quot;actionStart_server&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuTask.addAction(self.actionStart_server)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuTask.addSeparator()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuTask.addAction(self.actionExit)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuTask.addSeparator()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.addAction(self.actionLog_log)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.addAction(self.actionStdOutput)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.addAction(self.actionStdError)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.addSeparator()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.addAction(self.actionFile)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.addAction(self.actionCircular_file)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.addAction(self.actionCyclic_file)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.addSeparator()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.addAction(self.actionLog_server)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuStart_log_msg.addAction(self.actionTrace)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuStart_log_msg.addAction(self.actionDebug)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuStart_log_msg.addAction(self.actionInfo)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuStart_log_msg.addAction(self.actionWarning)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuStart_log_msg.addAction(self.actionError)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuStart_log_msg.addAction(self.actionFault)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuStart_log_msg.addAction(self.actionCustom)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuLogging.addAction(self.menuAdd_handler.menuAction())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuLogging.addSeparator()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuLogging.addAction(self.menuStart_log_msg.menuAction())<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuLogging.addAction(self.actionStop)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuHelp.addAction(self.actionAbout)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuView.addAction(self.actionStd_output_v)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuView.addAction(self.actionStd_error_v)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuView.addAction(self.actionLogging_v)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuView.addAction(self.actionFile_v)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menubar.addAction(self.menuTask.menuAction())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menubar.addAction(self.menuLogging.menuAction())<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menubar.addAction(self.menuView.menuAction())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menubar.addAction(self.menuHelp.menuAction())<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.retranslateUi(MainWindow)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtCore.QObject.connect(self.actionExit,QtCore.SIGNAL(&quot;triggered()&quot;),MainWindow.close)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtCore.QObject.connect(self.actionStd_error_v,QtCore.SIGNAL(&quot;toggled(bool)&quot;),self.dockWidget_err.setVisible)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtCore.QObject.connect(self.actionStd_output_v,QtCore.SIGNAL(&quot;toggled(bool)&quot;),self.dockWidget_out.setVisible)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtCore.QObject.connect(self.actionLogging_v,QtCore.SIGNAL(&quot;toggled(bool)&quot;),self.dockWidget_log.setVisible)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtCore.QObject.connect(self.dockWidget_err,QtCore.SIGNAL(&quot;visibilityChanged(bool)&quot;),self.actionStd_error_v.setChecked)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtCore.QObject.connect(self.dockWidget_log,QtCore.SIGNAL(&quot;visibilityChanged(bool)&quot;),self.actionLogging_v.setChecked)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtCore.QObject.connect(self.dockWidget_out,QtCore.SIGNAL(&quot;visibilityChanged(bool)&quot;),self.actionStd_output_v.setChecked)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtCore.QMetaObject.connectSlotsByName(MainWindow)<br><br>&nbsp;&nbsp;&nbsp; def retranslateUi(self, MainWindow):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MainWindow.setWindowTitle(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;TW-logging system&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_log.setWindowTitle(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Log&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_out.setWindowTitle(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Output&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.dockWidget_err.setWindowTitle(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Error&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuTask.setTitle(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Task&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuLogging.setTitle(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Logging&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuAdd_handler.setTitle(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Add/remove handler&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuStart_log_msg.setTitle(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Start periodic log msg&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuHelp.setTitle(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Help&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menuView.setTitle(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;View&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionExit.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Exit&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStop.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Stop all periodic log msg&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionRemove_handler.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Remove handler&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionAbout.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;About&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_output.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;std output&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_error.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;std error&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFile.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;file&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCircular_file.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;circular file&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCyclic_file.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;cyclic file&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_server.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;log server&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_widget.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;log widget&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionError_widget.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;error widget&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionOutput_widget.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;output widget&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_output_v.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;std output&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStd_error_v.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;std error&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLogging_v.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;logging&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStdOutput.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;stdOutput&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStdError.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;stdError&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionDebug.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;debug&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionInfo.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;info&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionWarning.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;warning&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionError.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;error&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFault.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;critical&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionCustom.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;custom&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionLog_log.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;log window&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionTrace.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;trace&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionFile_v.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;file&quot;, None, QtGui.QApplication.UnicodeUTF8))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.actionStart_server.setText(QtGui.QApplication.translate(&quot;MainWindow&quot;, &quot;Start server&quot;, None, QtGui.QApplication.UnicodeUTF8))<br><br><br><br>if __name__ == &quot;__main__&quot;:<br>&nbsp;&nbsp;&nbsp; import sys<br>
&nbsp;&nbsp;&nbsp; app = QtGui.QApplication(sys.argv)<br>&nbsp;&nbsp;&nbsp; MainWindow = QtGui.QMainWindow()<br>&nbsp;&nbsp;&nbsp; ui = Ui_MainWindow()<br>&nbsp;&nbsp;&nbsp; ui.setupUi(MainWindow)<br>&nbsp;&nbsp;&nbsp; MainWindow.show()<br>&nbsp;&nbsp;&nbsp; sys.exit(app.exec_())<br><br>