Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
QtRuby In Action
Search
ynonperek
August 03, 2012
Technology
190
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
QtRuby In Action
My talk at August Penguin 2012.
Introducing how to use Qt with Ruby programming language
ynonperek
August 03, 2012
More Decks by ynonperek
See All by ynonperek
QtRuby for Qt Developers
ynonperek
0
340
Qt Hybrid Apps
ynonperek
1
320
Cool CPAN Modules
ynonperek
2
660
Advanced Perl Moose
ynonperek
4
2.7k
Ruby Desktop Apps with Qt
ynonperek
1
650
Perl Golf
ynonperek
4
2.3k
git
ynonperek
3
850
Concurrency In Qt Applications
ynonperek
1
400
Moose Design Patterns
ynonperek
4
640
Other Decks in Technology
See All in Technology
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
170
第3回しろおびセキュリティスポンサーセッション
log0417
0
180
サイバー捜査員研修(後半)
nomizone
1
870
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
140
Digitization部 紹介資料
sansan33
PRO
2
7.7k
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
150
強化学習「理論」入門
enakai00
3
3.6k
私がブラウザを自作したくなった理由
supurazako
1
230
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
Sets in Go
ramalho
1
490
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
2
380
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
22k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
How to Talk to Developers About Accessibility
jct
2
510
Utilizing Notion as your number one productivity tool
mfonobong
4
540
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
890
Joys of Absence: A Defence of Solitary Play
codingconduct
1
430
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
860
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
200
GraphQLとの向き合い方2022年版
quramy
50
15k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
420
4 Signs Your Business is Dying
shpigford
187
22k
Designing for Performance
lara
611
70k
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 •
[email protected]
• 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 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 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 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 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 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 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 Guide http://techbase.kde.org/Development/ Languages/Ruby • Qt Tutorial
Videos http://qt-project.org/videos Friday, August 3, 12
About Me • Ynon Perek •
[email protected]
• http://qtcollege.co.il Friday,
August 3, 12