rbuic nubie - how to display form

View: New views
1 Messages — Rating Filter:   Alert me  

rbuic nubie - how to display form

by cag :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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