2015-02-10 3 views
0

Я изучаю python.Я новичок в этом.Обучение GUI python (PyQt4)

http://zetcode.com/gui/pyqt4/firstprograms/

с этого сайта, мне нужна помощь понимание кода.

#
import sys 
from PyQt4 import QtGui 


def main(): 

    app = QtGui.QApplication(sys.argv) 

    w = QtGui.QWidget() 
    w.resize(250, 150) 
    w.move(300, 300) 
    w.setWindowTitle('Simple') 
    w.show() 

    sys.exit(app.exec_()) 


if __name__ == '__main__': 
    main() 
#

Мой вопрос ниже

app = QtGui.QApplication(sys.argv) 

в коде, переменная приложение кажется на самом деле используется. так зачем это нужно назначать? и что это за цель? для меня, кажется, ж объект окна ... Я смущен ..

if __name__ == '__main__': 
    main() 

где __name__ и __main__ происходит от? Какова функциональность этого оператора if?

+0

-> в коде, переменная приложения не используется – wekim

+0

-> откуда выделяется символ подчеркивания "_name_" и "_main_"? Какова функциональность этого оператора if? – wekim

ответ

1

На странице вы процитировать себя:

Каждое приложение PyQt4 необходимо создать объект приложения. Объект приложения находится в модуле QtGui. Параметр sys.argv - это список аргументов из командной строки. Скрипты Python могут запускаться из оболочки. Это способ, которым мы можем управлять стартом наших скриптов.

Необходимо инициализировать объект QApplication, потому что это то, что является центральным для Qt, обрабатывающего всю вашу среду. Если вы хотите узнать больше об этом, посмотрите на Qt (как в общей документации, а не только на PyQT).

Regardin __name__: это основная вещь питона; это имя, под которым загружается модуль (в данном случае модуль - файл python); __main__ - это волшебное значение, которое получает переменная при запуске файла python напрямую (путем выполнения его исполняемого файла и запуска его или путем его запуска python pythonfile.py).

+0

Переменная _name_, в данном случае, будет как строка подчеркивания «main»? и сравнить это и перейти в основной() класс? – wekim

+0

это сравнение * точно * как в коде; переменная '__name__' сравнивается со строкой' '__main __ ''. Если сравнение возвращает 'True', выполняется' main() '.Мы не можем научить вас основам python. Начните с python.org и прочитайте первые шаги. –

+0

сожалею о моем глупом quetion, но спасибо за ответ. Я не мог понять, почему он должен иметь такое условное утверждение, просто запустите main() .... но большое вам спасибо. – wekim

0

Если вы попытаетесь запустить без этой строки, вы найдете ответ: в этом случае компонент GUI (т. Е. Окно, в данном случае) может быть создан без первого объекта приложения.

Короче говоря, это главный объект, в котором живут все другие объекты Qt gui, и он управляет циклом событий. Вы запускаете цикл событий с вызовом exec_(), который сообщает объекту приложения работать со всеми вещами, которые были определены для него до сих пор.

+0

, то присвоение переменной приложения делает что-то вроде поля игровой площадки GUI, и мы можем играть с ним с помощью QtGui.QWidget()? – wekim

+0

Эта аналогия работает для меня! – mdurant

0
if __name__ == "__main__": 
    # do something 

- общий код для проверки подлинности сценария как «основного» или импортированного в качестве модуля. если этот код был импортирован другим скриптом, этот блок не будет работать.

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