Pyrhon 3.4, PyQt4, Windows 8.1
Имеется проект с двумя формами:
Первая:
class MyForm(QtGui.QMainWindow,Ui_Topiq):
logShow = pyqtSignal()
def __init__(self, parent=None):
super(MyForm,self).__init__(parent)
self.setupUi(self)
#Делаем стартовое окошко установленным на первый слой виждетов
self.stackedWidget.setCurrentIndex(0);
....
Вторая:
class LogWindow(QtGui.QWidget,Ui_Log):
def __init__(self,parent=None):
super(LogWindow,self).__init__(parent)
self.setupUi(self)
...
Основная программа:
if __name__ == "__main__":
...
app = QtGui.QApplication(sys.argv)
mainWindow = MyForm()
log_ = LogWindow()
#добавляем обработчик клика по статус-бару
mainWindow.logShow.connect(log_.show)
mainWindow.show()
sys.exit(app.exec_())
Всё выполняется как надо, если запускать напрямую из редактора IDLE.
Если после этого файл сохранить и попытаться запустить двойным щелчком или из консоли, форма появится на мгновение и тут же пропадет, а скрипт завершится, никаких ошибок не выдав.
Если файл запустить из какой-нибудь еще ide (я пробовал PyCharm и Eclipse), поведение будет ровно таким же, как при двойном щелчке или при запуске из консоли, что меня не устраивает.
Если закомментировать строчку c connect'ом, скрипт запустится нормально во всех случаях.
#добавляем обработчик клика по статус-бару
#mainWindow.logShow.connect(log_.show)
В чем принципиальная разница запуска скрипта из IDLE и и любым другим способом? В чем разгадка такого поведения? Я даже запрос к гуглу не знаю, как составить. Помогите, пожалуйста.