Qtruby
-
Upload
ynon-perek -
Category
Technology
-
view
1.344 -
download
0
description
Transcript of Qtruby
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
• 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 Widgets
http://doc.qt.nokia.com/4.7-snapshot/gallery.html
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
Resources
• Ruby Qt/KDE Guidehttp://techbase.kde.org/Development/Languages/Ruby
• Qt Tutorial Videoshttp://qt-project.org/videos
Friday, August 3, 12
About Me
• Ynon Perek
• http://qtcollege.co.il
Friday, August 3, 12