2009-11-24 113 views
3

我正嘗試創建一個簡單的應用程序,用Ruby通過Qt編寫。我在Qt Designer中設計了一個表單(MainForm),並通過rbuic4將它轉換爲Ruby代碼表示。純不變的結果有四種方法,看起來像這樣:Ruby:在Qt中創建一個簡單的應用程序

=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應用程序,運行我小的Ruby應用程式上的GUI - 因爲現在我並不需要所有Qt庫的強大功能。

我知道this很好的例子,但它展示了一個不同的.ui文件生成的代碼。還是他們設法改變它?無論如何,他們的例子工作正常,但我不能讓自己的工作正常。

我只是不知道如何處理我生成的文件,如何進一步並與我的Ruby程序建立連接...也許我的rbuic4是錯誤的?或者我正在運行它與不正確的選項(我是-o選項)以獲得類似arachnoid的模板?

回答

0

好的,好的。至於我無法找到所提到的生成文件的確切用法,我決定複製粘貼組件init。代碼到另一個Ruby-Qt模板應用程序,其中一切都清楚了。因此,QtDesigner和rbui4僅適用於快速表單設計/翻譯,然後應該進行所有需要的手動拋光。

等待較新版本的rbuic4和QtRuby支持Qt的緊急版本。

3

真正做一些與你的代碼最簡單的方法是重新生成這樣的:

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

比運行生成的文件stackover.ui.rb像這樣:

ruby stackover.ui.rb 

希望它幫助。

相關問題