Upgrade to Pro — share decks privately, control downloads, hide ads and more …

QtRuby for Qt Developers

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for ynonperek ynonperek
August 06, 2012
320

QtRuby for Qt Developers

Avatar for ynonperek

ynonperek

August 06, 2012
Tweet

Transcript

  1. Non-Virtual By Default int main(int argc, char **argv) { Foo

    *f = new Bar(); // Calls Foo::doSomething by default f->doSomething(); } Monday, August 6, 12
  2. Implicit Copy Ctor int printData( Foo f ) { }

    int printRef ( Foo& f ) { } int main(int argc, char **argv) { Foo f; printData( f ); printRef( f ); } Monday, August 6, 12
  3. Implicit Type Coercion int printData( Foo f ) { }

    int printRef ( Foo& f ) { } int main(int argc, char **argv) { Foo f; // Convert to Foo printData( 5 ); } Monday, August 6, 12
  4. C++ Alternatives • Perl • Ruby • Java • Python

    they all got Monday, August 6, 12
  5. Hello Qt require 'Qt' app = Qt::Application.new( ARGV ) w

    = Qt::Label.new( "Hello World" ) w.set_alignment( Qt::AlignHCenter | Qt::AlignVCenter ) w.show app.exec Monday, August 6, 12
  6. Qt Terminology • Signals are connected to slots which are

    the handling code Monday, August 6, 12
  7. Designer Takeaways • Drag & Drop to create UI •

    Save as .ui file • Run: rbuic4 file.ui -x -o file_ui.rb • Use resulting .rb file but don’t modify it Monday, August 6, 12
  8. Qt Actions require 'Qt' require './demo1_ui.rb' a = Qt::Application.new(ARGV) u

    = Ui_Form.new w = Qt::Widget.new u.setupUi(w) w.show u.btn1.connect( SIGNAL :clicked ) { u.list1.add_item( "Qt FTW" ) } a.exec Monday, August 6, 12
  9. Qt Actions require 'Qt' app = Qt::Application.new( ARGV ) s1

    = Qt::Slider.new( Qt::Horizontal ) s2 = Qt::Slider.new( Qt::Horizontal ) Qt::Object.connect( s1, SIGNAL("valueChanged(int)"), s2, SLOT( "setValue(int)") ) Qt::Object.connect( s2, SIGNAL("valueChanged(int)"), s1, SLOT( "setValue(int)") ) s1.show s2.show app.exec Monday, August 6, 12
  10. Qt Stock Dialogs require 'Qt' require './demo1_ui.rb' a = Qt::Application.new(ARGV)

    u = Ui_Form.new w = Qt::Widget.new u.setupUi(w) w.show u.btn1.connect( SIGNAL :clicked ) { filename = Qt::FileDialog.get_open_file_name; u.list1.add_item( filename ) } a.exec Monday, August 6, 12
  11. QtRuby • Easy UI for your programs • Solid Foundations

    • Use existing Qt knowledge Monday, August 6, 12