Qtruby

Post on 18-Dec-2014

1,345 views 0 download

description

Writing ruby scripts and wished you had an easy way to add some user interface to your scripts ? look no further. Qt is an awesome, stable and widely used GUI framework that works on multiple programming languages and multiple platforms. This keynote shows how to easily add Qt GUI to your ruby scripts.

transcript

Introducing QtRuby

Ynon Perek

http://qtcollege.co.il

Friday, August 3, 12

Friday, August 3, 12

Friday, August 3, 12

sudo apt-get install lynx

Friday, August 3, 12

Friday, August 3, 12

Agenda

• GUI Programming

• Qt Framework

• QtRuby In Action

Friday, August 3, 12

About Me

• Ynon Perek

• ynonperek@yahoo.com

• http://qtcollege.co.il

Friday, August 3, 12

Desktop UI

Friday, August 3, 12

GUI Frameworks

Friday, August 3, 12

Choose Qt

• Easy To Start

Friday, August 3, 12

Choose Qt

• Easy To Start

• Mature and widely used

Friday, August 3, 12

Famous Qt Apps

Friday, August 3, 12

Famous Qt Apps

Friday, August 3, 12

Choose Qt

• Easy To Start

• Mature and widely used

• True Cross Platform

Friday, August 3, 12

Choose Qt

Friday, August 3, 12

Choose Qt

• Easy To Start

• Mature and widely used

• True Cross Platform

• Cross Language

Friday, August 3, 12

Choose Qt• C++

• Java

• Ruby

• Perl

• Python

• And More...

Friday, August 3, 12

Q & A

Friday, August 3, 12

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

Qt Terminology

• a Widget is a visible component

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

Friday, August 3, 12

Qt Terminology

Widget

Friday, August 3, 12

Qt Widgets

Friday, August 3, 12

Qt Layouts

• A top level widget may contain other widgets

• Child widgets are arranged in a layout

Friday, August 3, 12

DEMO: UI Designer

Friday, August 3, 12

Qt Terminology

• Signal specifies a semantic event

Friday, August 3, 12

Qt Terminology

• Signals are connected to slots which are the handling code

Friday, August 3, 12

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

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

Qt Stock Dialogs

• Qt::MessageBox.about

• Qt::FileDialog.get_open_file_name

• Qt::FileDialog.get_save_file_name

Friday, August 3, 12

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

Q & A

Friday, August 3, 12

QtRuby

• Easy UI for your programs

• Solid Foundations

Friday, August 3, 12

What Next

• Qt Developers Meetup

• August 7, 19:00

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

Friday, August 3, 12

About Me

• Ynon Perek

• ynonperek@yahoo.com

• http://qtcollege.co.il

Friday, August 3, 12