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
1
130
QtRuby In Action
My talk at August Penguin 2012.
Introducing how to use Qt with Ruby programming language
ynonperek
August 03, 2012
Tweet
Share
More Decks by ynonperek
See All by ynonperek
QtRuby for Qt Developers
ynonperek
0
260
Qt Hybrid Apps
ynonperek
1
220
Cool CPAN Modules
ynonperek
2
600
Advanced Perl Moose
ynonperek
4
2.6k
Ruby Desktop Apps with Qt
ynonperek
1
560
Perl Golf
ynonperek
4
1.9k
git
ynonperek
3
780
Concurrency In Qt Applications
ynonperek
1
260
Moose Design Patterns
ynonperek
4
480
Other Decks in Technology
See All in Technology
iPadOS18でフローティングタブバーを解除してみた
sansantech
PRO
1
130
AWS re:Invent 2024 recap in 20min / JAWSUG 千葉 2025.1.14
shimy
1
100
データ基盤におけるIaCの重要性とその運用
mtpooh
4
490
実践! ソフトウェアエンジニアリングの価値の計測 ── Effort、Output、Outcome、Impact
nomuson
0
2k
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
1
140
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
150
dbtを中心にして組織のアジリティとガバナンスのトレードオンを考えてみた
gappy50
0
210
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
240
GoogleのAIエージェント論 Authors: Julia Wiesinger, Patrick Marlow and Vladimir Vuskovic
customercloud
PRO
0
130
ABWGのRe:Cap!
hm5ug
1
120
.NET 最新アップデート ~ AI とクラウド時代のアプリモダナイゼーション
chack411
0
200
AWS re:Invent 2024 re:Cap Taipei (for Developer): New Launches that facilitate Developer Workflow and Continuous Innovation
dwchiang
0
160
Featured
See All Featured
Facilitating Awesome Meetings
lara
51
6.2k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Embracing the Ebb and Flow
colly
84
4.5k
Faster Mobile Websites
deanohume
305
30k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Into the Great Unknown - MozCon
thekraken
34
1.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Designing Experiences People Love
moore
139
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
KATA
mclloyd
29
14k
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