Archive:Development/Tutorials/Qt4 Ruby Tutorial/Chapter 01 (zh TW)

From KDE TechBase
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Template:I18n/Language Navigation Bar (zh TW)

Template:TutorialBrowser (zh TW)

Hello World!

檔案:

概覽

第一個程式是一個簡單的「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 的 GUI 應用程式,必須有一個確實的 Qt::Application 物件。Qt::Application 管理各種應用程式的資源,如預設字體和游標(cursor)。

Qt::PushButton 是一個 GUI push 按鈕,使用者可以按下和放開。它管理自己的外觀和感覺,就像所有其他的 Qt::Widget。widget 是一個使用者界面物件,可以處理使用者的輸入和繪製圖形。程式設計師可以改變整體外觀和感覺以及它的一些小型屬性(如顏色),以及 widget 的內容。Qt::PushButton 可以顯示文字或Qt::Icon

一行一行的瀏覽

require 'Qt4'

這行載入 QtRuby 擴充。

app = Qt::Application.new(ARGV)

app 是程式的 Qt::Application 實例(instance)。它是在這裡建立的。我們傳遞 ARGVQt::Application 建構子(constructor),使之能夠處理某些標準的命令列參數(如 X11 的 -display)。所有 Qt 能識別的命令列參數將會從 ARGV 移除 。

注意: 最重要的是, Qt::Application 物件要在使用任何 Qt 的視窗系統元件之前建立。

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

Qt::Application 後,第一個出現的視窗系統程式碼:建立一個 push 按鈕。

該按鈕設定為顯示文字「Hello world!」。因為我們沒有指定父視窗(作為 Qt::PushButton 建構子的第二個參數),該按鈕將有它自己的視窗、自己的窗框和標題列。

hello.resize(100, 30)

該按鈕設定為100像素(pixels)寬和30像素高(不包括窗框,它是由視窗系統提供的)。我們可以呼叫 Qt::Widget::move() 來指派 widget 在特定的螢幕位置,不過這裡我們讓視窗系統選擇位置。

hello.show()

當您建立 widget 時,它是不可見的。您必須呼叫 Qt::Widget::show() 使其可見。

app.exec()

這裡是我們的程式將控制權傳遞到 Qt 的地方。Qt::CoreApplication::exec() 會在應用程式結束時返回。(Qt::CoreApplicationQt::Application 的基礎類別。它實現Qt::Application 的核心,非GUI 功能,並且可用於開發非 GUI 應用程式。)

Qt::CoreApplication::exec(),Qt 接收和處理使用者和系統事件,並傳遞這些到適當的 widget。

你現在應該嘗試執行該程式。

執行應用程式

當您執行應用程式,您會看到一個放著單一按鈕的小視窗。在按鈕上您可以讀到那句名言:「Hello world!」

練習

嘗試調整視窗大小。按下按鈕。如果您正在執行 X11,嘗試加入 -geometry 選項來執行程式(例如,-geometry 100x200+10+20)。