+ All Categories

Download - Qtruby

Transcript
Page 1: Qtruby

Introducing QtRuby

Ynon Perek

http://qtcollege.co.il

Friday, August 3, 12

Page 2: Qtruby

Friday, August 3, 12

Page 3: Qtruby

Friday, August 3, 12

Page 4: Qtruby

sudo apt-get install lynx

Friday, August 3, 12

Page 5: Qtruby

Friday, August 3, 12

Page 6: Qtruby

Agenda

• GUI Programming

• Qt Framework

• QtRuby In Action

Friday, August 3, 12

Page 7: Qtruby

About Me

• Ynon Perek

[email protected]

• http://qtcollege.co.il

Friday, August 3, 12

Page 8: Qtruby

Desktop UI

Friday, August 3, 12

Page 9: Qtruby

GUI Frameworks

Friday, August 3, 12

Page 10: Qtruby

Choose Qt

• Easy To Start

Friday, August 3, 12

Page 11: Qtruby

Choose Qt

• Easy To Start

• Mature and widely used

Friday, August 3, 12

Page 12: Qtruby

Famous Qt Apps

Friday, August 3, 12

Page 13: Qtruby

Famous Qt Apps

Friday, August 3, 12

Page 14: Qtruby

Choose Qt

• Easy To Start

• Mature and widely used

• True Cross Platform

Friday, August 3, 12

Page 15: Qtruby

Choose Qt

Friday, August 3, 12

Page 16: Qtruby

Choose Qt

• Easy To Start

• Mature and widely used

• True Cross Platform

• Cross Language

Friday, August 3, 12

Page 17: Qtruby

Choose Qt• C++

• Java

• Ruby

• Perl

• Python

• And More...

Friday, August 3, 12

Page 18: Qtruby

Q & A

Friday, August 3, 12

Page 19: Qtruby

Hello Qtrequire 'Qt' app = Qt::Application.new( ARGV )w   = Qt::Label.new( "Hello World" )

w.set_alignment( Qt::AlignHCenter | Qt::AlignVCenter ) w.show

app.exec

Friday, August 3, 12

Page 20: Qtruby

Qt Terminology

• a Widget is a visible component

• Label, Button, Table, List, ...

Friday, August 3, 12

Page 21: Qtruby

Qt Terminology

Widget

Friday, August 3, 12

Page 22: Qtruby

Qt Widgets

Friday, August 3, 12

Page 24: Qtruby

Qt Layouts

• A top level widget may contain other widgets

• Child widgets are arranged in a layout

Friday, August 3, 12

Page 25: Qtruby

DEMO: UI Designer

Friday, August 3, 12

Page 26: Qtruby

Qt Terminology

• Signal specifies a semantic event

Friday, August 3, 12

Page 27: Qtruby

Qt Terminology

• Signals are connected to slots which are the handling code

Friday, August 3, 12

Page 28: Qtruby

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

Friday, August 3, 12

Page 29: Qtruby

Qt Actionsrequire 'Qt'require './demo1_ui.rb'

a = Qt::Application.new(ARGV)u = Ui_Form.neww = Qt::Widget.newu.setupUi(w)w.show

u.btn1.connect( SIGNAL :clicked ) {  u.list1.add_item( "Qt FTW" )}

a.exec

Friday, August 3, 12

Page 30: Qtruby

Qt Stock Dialogs

• Qt::MessageBox.about

• Qt::FileDialog.get_open_file_name

• Qt::FileDialog.get_save_file_name

Friday, August 3, 12

Page 31: Qtruby

Qt Stock Dialogsrequire 'Qt'require './demo1_ui.rb'

a = Qt::Application.new(ARGV)u = Ui_Form.neww = Qt::Widget.newu.setupUi(w)w.show

u.btn1.connect( SIGNAL :clicked ) {  filename = Qt::FileDialog.get_open_file_name;  u.list1.add_item( filename )}

a.exec

Friday, August 3, 12

Page 32: Qtruby

Q & A

Friday, August 3, 12

Page 33: Qtruby

QtRuby

• Easy UI for your programs

• Solid Foundations

Friday, August 3, 12

Page 34: Qtruby

What Next

• Qt Developers Meetup

• August 7, 19:00

• http://meetup.com/QtEverywhere/Tel-Aviv-Yafo-IL/740512/

Friday, August 3, 12

Page 36: Qtruby

About Me

• Ynon Perek

[email protected]

• http://qtcollege.co.il

Friday, August 3, 12


Top Related