Ruby:在Qt中创建一个简单的应用程序

我正在尝试创建一个简单的应用程序,通过Qt用Ruby编写。 我在Qt Designer中设计了一个表单(MainForm),并通过rbuic4将其翻译成Ruby代码表示。 纯粹的未触动结果有四种方法,看起来像这样:

 =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库的所有function。

我知道这个很好的例子,但它显示了.ui文件的不同生成代码。 或者他们设法以某种方式改变它? 无论如何,他们的例子工作正常,而我不能让自己正常工作。

我只是不知道如何处理我生成的文件,如何进一步与我的Ruby程序建立连接…也许我的rbuic4错了? 或者我正在使用不正确的选项运行它(我是一个-o选项)来获得类似蛛网膜的模板?

实际对代码执行某些操作的最简单方法是重新生成它,如下所示:

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

比运行生成的stackover.ui.rb文件:

 ruby stackover.ui.rb 

希望能帮助到你。

好吧,好的。 至于我找不到所提到的生成文件的确切用法,我决定复制粘贴组件init。 代码到另一个Ruby-Qt模板应用程序,其中一切都很清楚。 因此,QtDesigner和rbui4仅对快速表单设计/翻译有用,然后应该进行所有必需的手动抛光。

等待更新版本的rbuic4和QtRuby支持紧急版Qt。