2016-01-28 6 views
1

Я новичок в PyQT и я только начал изучать об этом в этом видео: https://www.youtube.com/watch?v=JBME1ZyHiP8Окно GUI в Python (PyQT) мгновенно мигает и закрывается?

Когда я побежал код на мой Ubuntu 14.04

import sys 
from PyQt4 import QtGui # Always have these two imports 

app = QtGui.QApplication(sys.argv) 
window = QtGui.QWidget() 
window.setGeometry(50,50,500,300) 
window.setWindowTitle("PyQt start") 

window.show() 

Окно упаковали только мигает и закрывается. Как я могу получить окно , чтобы я мог взаимодействовать с ним? Код в видео Youtube выше продемонстрировал его на платформе Windows. Должен ли я добавить что-нибудь, что Ubuntu относится к моему коду?

+0

Почему отрицательный голос? Это очень конкретный и конкретный вопрос программирования! – smilingbuddha

+0

Вы получаете сообщение об ошибке? – furas

+0

этот код работает для меня на Linux Mint 17 (на основе Ubuntu 14) – furas

ответ

2

Вы не запускаете приложение, добавьте эту строку в конец:

sys.exit(app.exec_()) 

relevant documentation Из:

Int QApplication.exec_()

Вход в главное событие loop и ждет, пока не выйдет exit(), а затем вернет значение, которое было установлено для выхода() (которое равно 0, если exit() вызывается через quit()).

Эту функцию необходимо вызвать для запуска обработки событий. Основной цикл событий принимает события из оконной системы и отправляет их в виджеты приложения.

Как правило, до вызова функции exec() невозможно взаимодействие с пользователем. В качестве особого случая модальные виджеты, такие как QMessageBox, могут использоваться перед вызовом exec(), потому что модальные виджеты вызывают exec(), чтобы запустить локальный цикл событий.

+0

Отлично, что сработало! Спасибо! Почему это не нужно для версии Windows? – smilingbuddha

+0

Это тоже необходимо для Windows. – 101

+0

Хм .. Ну, в видео YouTube, которое я связал выше, команда, о которой вы говорили, не использовалась. Мне было интересно, почему это так. В любом случае, спасибо за вашу помощь. – smilingbuddha

Смежные вопросы