Development/Tutorials/Qt4 Ruby Tutorial/Chapter 01/ru: Difference between revisions

    From KDE TechBase
    (Created page with "При создании, виджет не появляется на экране. Чтобы он стал видимым, нужно вызвать [http://doc.qt.nokia.com/lat...")
    (Updating to match new version of source page)
     
    (10 intermediate revisions by one other user not shown)
    Line 1: Line 1:
    <languages />
    <languages />
    {{Template:I18n/Language Navigation Bar|Development/Tutorials/Qt4 Ruby Tutorial/Chapter 01}}


    {{TutorialBrowser/ru|
    {{TutorialBrowser/ru|
    Line 67: Line 65:
    </syntaxhighlight>
    </syntaxhighlight>


    Here, after the [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application], comes the first window-system code: A push button is created.
    Здесь создаётся кнопка.


    Эта кнопка будет показывать текст "Hello world!".  
    Эта кнопка будет показывать текст "Hello world!".  
    Line 89: Line 87:
    </syntaxhighlight>
    </syntaxhighlight>


    This is where our program passes control to Qt.  
    Здесь программа передаёт управление Qt.  
    [http://doc.qt.nokia.com/latest/qcoreapplication.html#exec Qt::CoreApplication::exec()] will return when the application exits.  
    Вызов [http://doc.qt.nokia.com/latest/qcoreapplication.html#exec Qt::CoreApplication::exec()] завершается при завершении работы программы.  
    ([http://doc.qt.nokia.com/latest/qcoreapplication.html Qt::CoreApplication] is [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]'s base class.  
    ([http://doc.qt.nokia.com/latest/qcoreapplication.html Qt::CoreApplication] — это базовый класс класса [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application].  
    It implements [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]'s core, non-GUI functionality and can be used when developing non-GUI applications.)
    Он реализует базовые возможности [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application], без возможности работы с графическим интерфейсом. Его можно использовать при написании приложений без графического интерфейса.)


    In [http://doc.qt.nokia.com/latest/qcoreapplication.html#exec Qt::CoreApplication::exec()], Qt receives and processes user and system events and passes these on to the appropriate widgets.
    В вызове [http://doc.qt.nokia.com/latest/qcoreapplication.html#exec Qt::CoreApplication::exec()], Qt обрабатывает действия пользователя и системные события и сообщает о них соответствующим виджетам.


    You should now try to run this program.
    Теперь запустите программу.


    === Running the Application ===
    === Запуск приложения ===


    When you run the application, you will see a small window filled with a single button, and on it you can read the famous words: "Hello world!"
    После запуска приложения вы увидите небольшое окно с одной кнопкой.


    === Exercises ===
    === Упражнения ===


    Try to resize the window. Click the button. If you're running X11,  
    Попробуйте изменить размер окна. Нажмите кнопку. Если вы используете X11 (например, если вы используете GNU/Linux), попробуйте запустить программу с аргументом '''<tt>-geometry</tt>''' (например, '''<tt>-geometry 100x200+10+20</tt>''').
    try running the program with the '''<tt>-geometry</tt>''' option (for example, '''<tt>-geometry 100x200+10+20</tt>''').


    [[Category:Ruby]]
    [[Category:Ruby/ru]]

    Latest revision as of 12:32, 13 July 2012

    Other languages:
    Здравствуй, мир!
    Серия примеров   Введение в программирование на Qt®4 на языке Ruby
    Необходимо знать   Ruby
    Следующий пример   Пример 2: Выход по нажатию
    Литература   нет

    Здравствуй, мир!

    Файлы:

    Обзор

    Этот первый пример — программа «Hello world!» («Здравствуй, мир!»). Здесь содержатся минимальные знания, необходимые для написания работоспособного приложения на Qt. Выше приведён снимок экрана программы.

    Исходный код приложения:

    require 'Qt4'
    
    app = Qt::Application.new(ARGV)
    
    hello = Qt::PushButton.new('Hello World!')
    hello.resize(100, 30)
    hello.show()
    
    app.exec()
    

    Введение

    Главный файл в приложении на QtRuby обычно занимается только инициализацией, после чего передаёт управление библиотеке Qt, которая потом сообщает программе о действиях пользователя через события.

    В каждом графическом приложении на Qt должен быть создан ровно один объект класса Qt::Application. Этот объект управляет глобальными для приложения параметрами, такими как шрифт и форма курсора мыши по умолчанию.

    Qt::PushButton — это обычная кнопка, которую пользователь может нажимать и отпускать. Этот класс сам занимается отрисовкой кнопки, как и любой другой класс, наследуемый от Qt::Widget. Виджет (widget) — это объект в графическом интерфейсе, который может обрабатывать действия пользователя и отрисовывать себя на экране. Программист может менять всевозможные параметры виджета и его содержимое. Например, Qt::PushButton можно заставить показывать не только текст, но и значок (Qt::Icon).

    Построчный обзор программы

    require 'Qt4'
    

    Эта строка загружает библиотеку QtRuby.

    app = Qt::Application.new(ARGV)
    

    app — объект Qt::Application в нашей программе. В этой строке он создаётся. Аргумент ARGV передаётся в конструктор класса Qt::Application для того, чтобы он мог узнать интересующие Qt аргументы командной строки, переданные в программу (например, аргумент -display при использовании X11). Все аргументы командной строки, которые используются Qt, удаляются из массива ARGV.

    Замечание: Важно то, что объект класса Qt::Application создаётся до создания окон при помощи Qt.

    hello = Qt::PushButton.new('Hello World!')
    

    Здесь создаётся кнопка.

    Эта кнопка будет показывать текст "Hello world!". Поскольку мы не задали родительское окно для кнопки (это был бы второй аргумент конструктора класса Qt::PushButton), кнопка появится в отдельном окне со своей рамкой и заголовком окна.

    hello.resize(100, 30)
    

    Задаются размеры кнопки: ширина — 100 пикселов, высота — 30 пикселов (не включая рамку окна). Можно было бы ещё задать положение окна на экране вызовом Qt::Widget::move().

    hello.show()
    

    При создании, виджет не появляется на экране. Чтобы он стал видимым, нужно вызвать Qt::Widget::show().

    app.exec()
    

    Здесь программа передаёт управление Qt. Вызов Qt::CoreApplication::exec() завершается при завершении работы программы. (Qt::CoreApplication — это базовый класс класса Qt::Application. Он реализует базовые возможности Qt::Application, без возможности работы с графическим интерфейсом. Его можно использовать при написании приложений без графического интерфейса.)

    В вызове Qt::CoreApplication::exec(), Qt обрабатывает действия пользователя и системные события и сообщает о них соответствующим виджетам.

    Теперь запустите программу.

    Запуск приложения

    После запуска приложения вы увидите небольшое окно с одной кнопкой.

    Упражнения

    Попробуйте изменить размер окна. Нажмите кнопку. Если вы используете X11 (например, если вы используете GNU/Linux), попробуйте запустить программу с аргументом -geometry (например, -geometry 100x200+10+20).