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

    From KDE TechBase
    (Created page with "Задаются размеры кнопки: ширина — 100 пикселов, высота — 30 пикселов (не включая рамку окна). Можно ...")
    (Created page with "При создании, виджет не появляется на экране. Чтобы он стал видимым, нужно вызвать [http://doc.qt.nokia.com/lat...")
    Line 83: Line 83:
    </syntaxhighlight>
    </syntaxhighlight>


    A widget is never visible when you create it. You must call [http://doc.qt.nokia.com/latest/qwidget.html#show Qt::Widget::show()] to make it visible.
    При создании, виджет не появляется на экране. Чтобы он стал видимым, нужно вызвать [http://doc.qt.nokia.com/latest/qwidget.html#show Qt::Widget::show()].


    <syntaxhighlight lang="ruby">
    <syntaxhighlight lang="ruby">

    Revision as of 15:23, 2 July 2011

    Other languages:


    Development/Tutorials/Qt4 Ruby Tutorial/Chapter 01


    Здравствуй, мир!
    Серия примеров   Введение в программирование на 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!')
    

    Here, after the Qt::Application, comes the first window-system code: A push button is created.

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

    hello.resize(100, 30)
    

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

    hello.show()
    

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

    app.exec()
    

    This is where our program passes control to Qt. Qt::CoreApplication::exec() will return when the application exits. (Qt::CoreApplication is Qt::Application's base class. It implements Qt::Application's core, non-GUI functionality and can be used when developing non-GUI applications.)

    In Qt::CoreApplication::exec(), Qt receives and processes user and system events and passes these on to the appropriate widgets.

    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, try running the program with the -geometry option (for example, -geometry 100x200+10+20).