3

Qtを介してRubyで記述された単純なアプリケーションを作成しようとしています。Qt Designerでフォーム(MainForm)を設計し、それをrbuic4Rubyコード表現に変換しました。手つかずの純粋な結果には4つの方法があり、次のようになります。

=begin
** Form generated from reading ui file 'stackover.ui'
**
** Created: Р’С‚ 24. РЅРѕСЏ 21:15:02 2009
**      by: Qt User Interface Compiler version 4.3.1
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
=end

class Ui_MainWindow
    attr_reader :centralwidget
    attr_reader :pushButton
    attr_reader :listView
    attr_reader :menubar
    attr_reader :statusbar

    def setupUi(mainWindow)
    mainWindow.setObjectName("mainWindow")
    @centralwidget = Qt::Widget.new(mainWindow)
    @centralwidget.setObjectName("centralwidget")
    @pushButton = Qt::PushButton.new(@centralwidget)
    @pushButton.setObjectName("pushButton")
    @pushButton.setGeometry(Qt::Rect.new(10, 10, 75, 23))
    @listView = Qt::ListView.new(@centralwidget)
    @listView.setObjectName("listView")
    @listView.setGeometry(Qt::Rect.new(10, 40, 431, 192))
    mainWindow.setCentralWidget(@centralwidget)
    @menubar = Qt::MenuBar.new(mainWindow)
    @menubar.setObjectName("menubar")
    @menubar.setGeometry(Qt::Rect.new(0, 0, 451, 21))
    mainWindow.setMenuBar(@menubar)
    @statusbar = Qt::StatusBar.new(mainWindow)
    @statusbar.setObjectName("statusbar")
    mainWindow.setStatusBar(@statusbar)

    retranslateUi(mainWindow)

    size = Qt::Size.new(451, 276)
    size = size.expandedTo(mainWindow.minimumSizeHint())
    mainWindow.resize(size)


    Qt::MetaObject.connectSlotsByName(mainWindow)
    end # setupUi

    def setup_ui(mainWindow)
        setupUi(mainWindow)
    end

    def retranslateUi(mainWindow)
    mainWindow.setWindowTitle(Qt::Application.translate("MainWindow", "MainWindow", nil, Qt::Application::UnicodeUTF8))
    @pushButton.setText(Qt::Application.translate("MainWindow", "PushButton", nil, Qt::Application::UnicodeUTF8))
    end # retranslateUi

    def retranslate_ui(mainWindow)
        retranslateUi(mainWindow)
    end

end

module Ui
    class MainWindow < Ui_MainWindow
    end
end  # module Ui

主なアイデアは、Ruby-Qtアプリケーションを作成し、GUIを使用して小さなRubyアプリを実行することです。今のところ、Qtライブラリのすべての機能は必要ありません。

私はこの素晴らしい例を知っていますが、.uiファイル用に生成された別のコードを示しています。それとも彼らはなんとかそれを変えることができましたか?とにかく、彼らの例はうまく機能しますが、私は自分自身を適切に機能させることはできません。

生成されたファイルをどうするか、さらに進んでRubyプログラムと接続する方法がわかりません...たぶん私rbuic4は間違っていますか?または、クモ膜のようなテンプレート-oを取得するために、間違ったオプション(私はオプションです)で実行していますか?

4

2 に答える 2

3

コードで実際に何かを行う最も簡単な方法は、次のようにコードを再生成することです。

rbuic4 -x stackover.ui -o stackover.ui.rb

生成された stackover.ui.rb ファイルを次のように実行します。

ruby stackover.ui.rb

それが役に立てば幸い。

于 2010-06-29T17:03:28.903 に答える
0

まぁ、いいよ。上記の生成されたファイルの正確な使用法が見つからない限り、コンポーネントの初期化をコピーして貼り付けることにしました。別のRuby-Qtテンプレートアプリへのコード。これですべてがわかります。したがって、QtDesignerrbui4は、フォームの迅速な設計/変換にのみ役立ちます。その後、必要なすべての手動研磨を行う必要があります。

rbuic4Qtの新しいバージョンと緊急バージョンのQtRubyサポートを待っています。

于 2009-11-26T09:26:13.973 に答える