Hi,
I have downloaded QT4 Designer (windows) and created a very simple form and simple wanted to display the from for starters and couldn't do it. There must be a simple way to just display the form - after that I'll deal with adding signals and slots. Also the module makes me think it might have been planned to be used as a mixin. I tried but couldn't find examples or docs.
Here is my attempt:
The rbuic generated file:
#---------------------
# mainwindow.rb
#---------------------
class Ui_MainWindow
attr_reader :centralWidget
attr_reader :pb1
attr_reader :te1
attr_reader :lb1
attr_reader :menuBar
attr_reader :mainToolBar
attr_reader :statusBar
def setupUi(mainWindow)
if mainWindow.objectName.nil?
mainWindow.objectName = "mainWindow"
end
mainWindow.resize(600, 400)
@centralWidget = Qt::Widget.new(mainWindow)
@centralWidget.objectName = "centralWidget"
@pb1 = Qt::PushButton.new(@centralWidget)
@pb1.objectName = "pb1"
@pb1.geometry = Qt::Rect.new(10, 10, 75, 27)
@te1 = Qt::PlainTextEdit.new(@centralWidget)
@te1.objectName = "te1"
@te1.geometry = Qt::Rect.new(10, 70, 361, 201)
@lb1 = Qt::Label.new(@centralWidget)
@lb1.objectName = "lb1"
@lb1.geometry = Qt::Rect.new(140, 20, 81, 21)
mainWindow.centralWidget = @centralWidget
@menuBar = Qt::MenuBar.new(mainWindow)
@menuBar.objectName = "menuBar"
@menuBar.geometry = Qt::Rect.new(0, 0, 600, 23)
mainWindow.setMenuBar(@menuBar)
@mainToolBar = Qt::ToolBar.new(mainWindow)
@mainToolBar.objectName = "mainToolBar"
mainWindow.addToolBar(Qt::TopToolBarArea, @mainToolBar)
@statusBar = Qt::StatusBar.new(mainWindow)
@statusBar.objectName = "statusBar"
mainWindow.statusBar = @statusBar
retranslateUi(mainWindow)
Qt::MetaObject.connectSlotsByName(mainWindow)
end # setupUi
def setup_ui(mainWindow)
setupUi(mainWindow)
end
def retranslateUi(mainWindow)
mainWindow.windowTitle = Qt::Application.translate("MainWindow", "MainWindow", nil, Qt::Application::UnicodeUTF8)
@pb1.text = Qt::Application.translate("MainWindow", "Hello Button", nil, Qt::Application::UnicodeUTF8)
@te1.plainText = Qt::Application.translate("MainWindow", "Hello Text Box", nil, Qt::Application::UnicodeUTF8)
@lb1.whatsThis = ''
@lb1.text = Qt::Application.translate("MainWindow", "Hello Label", nil, Qt::Application::UnicodeUTF8)
end # retranslateUi
def retranslate_ui(mainWindow)
retranslateUi(mainWindow)
end
end
module Ui
class MainWindow < Ui_MainWindow
end
end # module Ui
#---------------------
# main.rb
#---------------------
require 'Qt4'
require 'mainwindow.rb'
app = Qt::Application.new(ARGV)
wdg = Qt::Widget.new
frm = Ui_MainWindow.new
frm.setupUi(wdg)
frm.show()
app.exec()
#---------------------
# error message
#---------------------
C:\jruby_projects\RubyApplication7\lib/mainwindow.rb:35:in `method_missing': undefined method `centralWidget=' for #<Qt::Widget:0x3f5532c> (NoMethodError)
from C:\jruby_projects\RubyApplication7\lib/mainwindow.rb:35:in `setupUi'
from C:/jruby_projects/RubyApplication7/lib/main.rb:8
Thanks,
Carl