Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск .py двойным щелчком в Windows7 
:(
    Опции темы
vshnukrshna
Дата 25.5.2013, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.5.2013

Репутация: нет
Всего: нет



Здравствуйте. 
Всего несколько часов изучаю Python и вообще программирование, поэтому не судите строго за ламерский вопрос..=)
Итак, я хочу при двойном щелчке на файл .py получать окошко 'hello world!'. 
На данный момент сделал GUI в Qt 4.8.4 на Python 3.3. Это окошко я могу запускать из командной строки и все работает как надо, но хотелось бы запускать простым двойным щелчком.
Я так понимаю, что когда я щелкаю по .py-файлу вылетает cmd, сама программа мгновенно исполняется и все закрывается. Так вот есть-ли способ остановить это мгновенное выполнение? Я знаю, что обычно ставится строка input(), но я ее тыкаю в разные места исходного кода и никакого эффекта не наблюдается. К тому же, такой вариант не слишком изящный. Я хочу чтоб, программа и cmd закрывались по нажатию крестика на окошке.
PM MAIL   Вверх
Gunjy
Дата 25.5.2013, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.5.2009

Репутация: нет
Всего: нет



Переименуй файл - сделай расширение .pyw. Если я не ошибаюсь .pyw - это для программ с интерфейсом, .py - для скриптов, работающих в фоновом режиме.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM   Вверх
vshnukrshna
Дата 29.5.2013, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.5.2013

Репутация: нет
Всего: нет



Спасибо, но не работает=(
Как пример, привожу код:
Код
from PyQt4 import QtGui, QtCore
 
class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.button = QtGui.QPushButton('Test', self)
        self.button.clicked.connect(self.handleButton)
        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(self.button)
 
    def handleButton(self):
        print ('Hello World')
 
if __name__ == '__main__':
 
    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

Через CMD все замечательно, но если переименовать в .pyw, и затем щелкнуть два раза то ничего даже не запускается...
И еще проблема: интерфейс PyQt как-то уж слишком глючно работает..навожу курсор на кнопки в меню (Файл, Правка, Вид...Справка...и.т.д.) и они выделяются но не нажимаются.А иногда нажимаются. Вообщем какая-то чертовщина.

Это сообщение отредактировал(а) vshnukrshna - 29.5.2013, 03:23
PM MAIL   Вверх
vshnukrshna
Дата 30.5.2013, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.5.2013

Репутация: нет
Всего: нет



Так, вообщем откатился на python 2.7. Теперь .pyw работает так как надо и тему, в принципе, можно было бы закрывать, но... мне этого мало =). Теперь я хочу преобразовать этот .pyw в .exe. Я использовал cx_Freeze, и exe создается и, вроде, даже без ошибок, но не работает. Щелкаю по нему - вылетает CMD и тут же закрывается. И все. Далее, пробую py2exe, но получаю сообщение, что нет какого-то MSVCP90.dll. Ребята, можете доступно объяснить что надо делать и какой компилятор лучше использовать? 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0556 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.