SlideShare a Scribd company logo
What's unique to Qt
Junior High School at Otsuka,
University of Tsukuba
“Ubuntu Japanese Translators” team
luyikei
盧 亦愷
Self Introduction①
・ I was born in Fukushima in 1997.
・ Now I live in Tokyo.
・ When I began to use a computer at age 6,
I had a mouse in my right hand, and a
baby bottle in my left hand
Self Introduction②
・ My first computer language is HTML.
→Since I was 4th grade.
・ My second computer language is Visual Basic.
→Since I was 7th grade.
・ My third computer language is Python
→Since I was 8th grade.
・ I love Qt!
→Since I was 9th grade.
Contents
・ My first Linux
・ Why do I use Linux
・ How I develop GUI application on Linux
・ Visual C++ 2010 vs Qt4
・ Qt vs GTK+
・ What is unique to Qt4?
❶ My first Linux
・ I will talk about my Linux for the first time.
One day...
・ I was using computer with Windows.
&
SOTEC A4170AV Windows XP SP2
Ahhhhhhhhhhhhhhhhhh!
After a few days.
・ I checked my computer with Nortn Anti Virus...
Ahhhhhhhhhhhhhhhhhhhhh!
VS Virus
360X
My first solution is ...
・ Recoveried with Symantec Ghost
After few weeks...
・ Again!
My second solution is...
・ Memtest86.
Give up!
・ I rescued my data from my computer with KNOOPIX live cd.
→This time was first time to use Linux.
・ I managed to recover my computer by
Replacing its memory.
old new
Now
I brought a new computer, and I installed Kubuntu.
❷ Why do I use Linux?
・ The reason is simple.
①Ubuntu is easy to use!!!!!!!!!!!!!!!!!!!!
②I don't like Windows design.
③To study server build.
④Ubuntu is light!
⑤Software manage is easy.
⑥Linux is good at study programming
❸How I develop GUI application on
Linux
My first GUI programming.
・ My first GUI programming is Visual Basic.
→It is easy and quick. But...
Oh my God!
・ My software can't working on Linux!
on
Visual Studio 2010
(.net framework)
Linux
I hope ...
・ I want to develop software that runs
both on Windows and on Linux.
My solution is...
→Learning Qt programming.
・ Qt is a cross-platform application
framework .
・ Qt's native language is C++.
Qt works on ...①
Qt works on the following platforms:
・ Windows
・ Windows CE
・ Mac OS X
・ Symbian
・ Embedded Linux
・ X Window System
・ Wayland
Qt works on ...②
External ports:
→Since Nokia opened the Qt source code to
the community on Gitorious various ports have
been appearing. (by wikipedia)
・ OpenSolaris
・ Haiku
・ OS/2
・ iPhone
・ webOS
・ Amazon Kindle
Qt is used by ...
KDE
Ubuntu Unity 2D
Adobe Photoshop Elements
Adobe After Effects CS5
Adobe Premiere Pro CS5
Autodesk Maya 2011
VLC
Nuke
Google Earth
Skype
QCad
Rosegarden
MuseScore
Qt can fit your PC's Theme
Easy program developed by Qt①
・ I will make the program that can change
letters on the button.
Step1
・ Set the button on the form.
Step2
・ Right-click on an button, and select “Go to slot...”
Step3
・ Select “clicked()”
Step4
・ Write code “ui->puchButton->setText(“aaa”);”
Step5
Clicked
・ It's complete. Run!
Easy program developed by Qt②
・ I will make the software without writing
any code.
Step1
・ Set QDial on a form.
Step2
・ Set QSlider on the form too.
Step3
・ Connect Qdial with QSilder.
Step4
Setting up the SIGNAL and SLOT
SIGNAL: QDial - valueChanged
SLOT: Qslider - setValue
Step5
・
Done!
valueChanged
❹Visual C++ 2010 vs Qt4
・ Round1: IDE
・ Round2: Speed
・ Round3: Other
Round1 : IDE
・ Visual Studio IDE
Round1 : IDE
・ Qt Creator
Code completion
・ Qt Creator ・ Visual Studio 2010 IDE (C+
+/CLI)
It hasn't code completion.!!
Layout
・ Qt Creator ・ Visual Studio 2010 IDE (C+
+/CLI)
・ Many layout tools
・ It doesn't has good layout
tools.
Round2: Speed
・ I'll compare the speed of Visual C++ 2010 with
that of Qt4
・ Qt4 Code ・ Visual C++ 2010 Code
The resault is...
・ Qt4 ・ Visual C++ 2010
18
・ Qt4
2 SecondSecond
Wow!
Round 3 Other
・ font
Qt Creator Visual Studio IDE
Which is better?
enlargement
Qt4 Visual C++ 2010
Web Rendering engine
・ Qt4 is Webkit ・ Visual C++ 2010 is Trident
What is webkit?
・ Webkit is used by Safari , Google Chrome
≒
Actually
・ WebKit's HTML and JavaScript code
originally began as a fork of the KHTML and
KJS libraries from KDE,
・ KHTML is the HTML layout engine
developed by the KDE project.
・ It is used by Konqueror.
・ Now Webkit is developed by
Apple, KDE, Nokia, Google, etc...
How about Trident?
・ Trident is used by Internet Explorer. X-)
I have built Simple Browser
With Qt4 With Visual C++ 2010 (C++/CLI)
And Judgment Browser type by Java
Script
<SCRIPT type="text/javascript">
var userAgent = window.navigator.userAgent.toLowerCase();
var appVersion = window.navigator.appVersion.toLowerCase();
if (userAgent.indexOf("msie") > -1) {
if (appVersion.indexOf("msie 6.0") > -1) {
alert("IE6");
}
else if (appVersion.indexOf("msie 7.0") > -1) {
alert("IE7");
}
else if (appVersion.indexOf("msie 8.0") > -1) {
alert("IE8");
}
else {
alert("Unknown");
}
}
else if (userAgent.indexOf("firefox") > -1) {
alert("Firefox");
}
else if (userAgent.indexOf("opera") > -1) {
alert("Opera");
}
else if (userAgent.indexOf("chrome") > -1) {
alert("Google Chrome");
}
else if (userAgent.indexOf("safari") > -1) {
alert("Safari");
}
else {
alert("Unknown");
}
Resualt
・ Qt Browser is...
Safari
・ Visual C++ Browser is...
Internet Explorer 7
Which Is Better?
Acid2 Browser Test
Acid2 is a test page published and promoted by the Web
Standards Project to expose web page rendering flaws in web
browsers and other applications that render HTML.
Correct result
Result is...
Ahhhhhhhhhhhhhh!
Acid 3 Browser Test
Acid3 test is a web test page from the Web Standards Project
that checks a web browser's compliance with elements of various
web standards, particularly the Document Object Model (DOM)
and JavaScript.
Correct result
Result is...
Ahhhhhhhhhhhhhh!
Support languages
・ Qt4
・ Ada
・ C++
・ C# & .NET
・ D
・ Haskell
・ Harbour
・ Java
・ Lisp
・ Lua
・ Visual Studio
・ Visual Basic
・ Visual C#
・ Visual C++
・ Perl
・ PHP
・ Python
・ QML
・ R
・ Ruby
・ Scheme
・ Tcl
・ Qt4 wins landslide victory!!!
You can develop software with Qt now!
How about other GUI tool kit?
❺ Qt vs GTK+
vs
GTK+ works on ...
Official
・ X Window System
・ Windows
・ Mac OS X
Developing...
・ HTML5
・ Wayland GTK+ is lesser than Qt.
15 5:
IDE
Qt Creator AnjutaQt Creator
GTK+ doesn't have an official IDE.
And It's not easy to use than Qt
Creater.
Hello World Program
・ Qt
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label("Hello, world!");
label.show();
return app.exec();
GTK+ is ...
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *label;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_main_quit), NULL);
label = gtk_label_new ("Hello, World");
gtk_container_add (GTK_CONTAINER (window), label);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
Worst weakness
・ If you make a program of GTK+ except for GIMP
and Pidgin, doesn't work Japanese input method on
Windows and Mac OS X
❻ What is unique to Qt4?
Code less.
・ As I have already mentioned before, Qt is code
less.
SIGNAL and SLOT
・ The mechanism of SIGNAL and SLOT,
We don't need any code often!
Create more.
・ Qt has a good IDE that Qt Creater!
Deploy everywhere.
・ As I have already mentioned before,Qt is a cross-
platform application framework .
Thank you!
・ Thank you for listening!
I'll be happy if you like qt!

More Related Content

What's hot

What's hot (20)

Geb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosperGeb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosper
 
FTC7 Michel Lefranc - Developing software based on the FSDL software library ...
FTC7 Michel Lefranc - Developing software based on the FSDL software library ...FTC7 Michel Lefranc - Developing software based on the FSDL software library ...
FTC7 Michel Lefranc - Developing software based on the FSDL software library ...
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 
Stop Sucking at Building Stuff!
Stop Sucking at Building Stuff!Stop Sucking at Building Stuff!
Stop Sucking at Building Stuff!
 
VN Tech Seminor Vol.2 Docker Tutorial
VN Tech Seminor Vol.2 Docker TutorialVN Tech Seminor Vol.2 Docker Tutorial
VN Tech Seminor Vol.2 Docker Tutorial
 
Always be testing
Always be testingAlways be testing
Always be testing
 
[NijmegenJS] Node.js - 2014/04/25
[NijmegenJS] Node.js - 2014/04/25[NijmegenJS] Node.js - 2014/04/25
[NijmegenJS] Node.js - 2014/04/25
 
Dsl로 만나는 groovy
Dsl로 만나는 groovyDsl로 만나는 groovy
Dsl로 만나는 groovy
 
PHP vs Node.js
PHP vs Node.jsPHP vs Node.js
PHP vs Node.js
 
Creating Slick User Interfaces With Qt
Creating Slick User Interfaces With QtCreating Slick User Interfaces With Qt
Creating Slick User Interfaces With Qt
 
Monorepo at Pinterest
Monorepo at PinterestMonorepo at Pinterest
Monorepo at Pinterest
 
Custom angular libraries
Custom angular librariesCustom angular libraries
Custom angular libraries
 
Opensource Software usability
Opensource Software usabilityOpensource Software usability
Opensource Software usability
 
Introduction To Dart (GDG NY Jan 2014 Meetup)
Introduction To Dart (GDG NY Jan 2014 Meetup)Introduction To Dart (GDG NY Jan 2014 Meetup)
Introduction To Dart (GDG NY Jan 2014 Meetup)
 
Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...
 
Mono Repo
Mono RepoMono Repo
Mono Repo
 
Python in telecommunications (in 7 minutes)
Python in telecommunications (in 7 minutes)Python in telecommunications (in 7 minutes)
Python in telecommunications (in 7 minutes)
 
Montreal.rb ruby debugging basics - march 20th 2012
Montreal.rb   ruby debugging basics - march 20th 2012Montreal.rb   ruby debugging basics - march 20th 2012
Montreal.rb ruby debugging basics - march 20th 2012
 
Gomobile: gophers in the land of Android
Gomobile: gophers in the land of AndroidGomobile: gophers in the land of Android
Gomobile: gophers in the land of Android
 
Python Desktop Application Development - PythonBo
Python Desktop Application Development - PythonBoPython Desktop Application Development - PythonBo
Python Desktop Application Development - PythonBo
 

Viewers also liked

Viewers also liked (13)

Qt Creator Bootcamp
Qt Creator BootcampQt Creator Bootcamp
Qt Creator Bootcamp
 
Qt quick (qml)
Qt quick (qml)Qt quick (qml)
Qt quick (qml)
 
Targeting Android with Qt
Targeting Android with QtTargeting Android with Qt
Targeting Android with Qt
 
Qt Qml
Qt QmlQt Qml
Qt Qml
 
Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux F...
Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux F...Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux F...
Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux F...
 
Qt for beginners part 4 doing more
Qt for beginners part 4   doing moreQt for beginners part 4   doing more
Qt for beginners part 4 doing more
 
Qt Application Development
Qt Application DevelopmentQt Application Development
Qt Application Development
 
Qt for Beginners Part 3 - QML and Qt Quick
Qt for Beginners Part 3 - QML and Qt QuickQt for Beginners Part 3 - QML and Qt Quick
Qt for Beginners Part 3 - QML and Qt Quick
 
Best Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIBest Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part III
 
Best Practices in Qt Quick/QML - Part II
Best Practices in Qt Quick/QML - Part IIBest Practices in Qt Quick/QML - Part II
Best Practices in Qt Quick/QML - Part II
 
Best Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part IBest Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part I
 
Best Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IVBest Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IV
 
Practical QML - Key Navigation, Dynamic Language and Theme Change
Practical QML - Key Navigation, Dynamic Language and Theme ChangePractical QML - Key Navigation, Dynamic Language and Theme Change
Practical QML - Key Navigation, Dynamic Language and Theme Change
 

Similar to What's unique to Qt

Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
Johan Thelin
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
rmitc
 

Similar to What's unique to Qt (20)

Treinamento Qt básico - aula I
Treinamento Qt básico - aula ITreinamento Qt básico - aula I
Treinamento Qt básico - aula I
 
KDE For Automotive? Really? Tell me more about it
KDE For Automotive? Really? Tell me more about itKDE For Automotive? Really? Tell me more about it
KDE For Automotive? Really? Tell me more about it
 
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
 
Success Story and Future Challenges of Applying Qt for Embedded Linux
Success Story and Future Challenges of Applying Qt for Embedded LinuxSuccess Story and Future Challenges of Applying Qt for Embedded Linux
Success Story and Future Challenges of Applying Qt for Embedded Linux
 
From NodeJS to Rust
From NodeJS to RustFrom NodeJS to Rust
From NodeJS to Rust
 
Qt introduction
Qt introductionQt introduction
Qt introduction
 
Andreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith QtAndreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith Qt
 
Flutter not yet another mobile cross-platform framework - i ox-kl19
Flutter   not yet another mobile cross-platform framework - i ox-kl19Flutter   not yet another mobile cross-platform framework - i ox-kl19
Flutter not yet another mobile cross-platform framework - i ox-kl19
 
Android Study Jam
Android Study Jam Android Study Jam
Android Study Jam
 
IoT Development from Software Developer Perspective
IoT Development from Software Developer PerspectiveIoT Development from Software Developer Perspective
IoT Development from Software Developer Perspective
 
Qtframework
QtframeworkQtframework
Qtframework
 
Introducing Ubuntu SDK
Introducing Ubuntu SDKIntroducing Ubuntu SDK
Introducing Ubuntu SDK
 
Kivy for you
Kivy for youKivy for you
Kivy for you
 
The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.10 book - Part 6 of 212The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.10 book - Part 6 of 212
 
Programming In Linux Presentation
Programming In Linux PresentationProgramming In Linux Presentation
Programming In Linux Presentation
 
Network programming with Qt (C++)
Network programming with Qt (C++)Network programming with Qt (C++)
Network programming with Qt (C++)
 
Cloud Conf 2015 - Develop and Deploy IOT Applications
Cloud Conf 2015 - Develop and Deploy IOT ApplicationsCloud Conf 2015 - Develop and Deploy IOT Applications
Cloud Conf 2015 - Develop and Deploy IOT Applications
 
Green flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdfGreen flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdf
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
 

More from Yikei Lu (6)

サンドボックス化によるセキュアなプログラミング
サンドボックス化によるセキュアなプログラミングサンドボックス化によるセキュアなプログラミング
サンドボックス化によるセキュアなプログラミング
 
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブAppDjango 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブApp
 
Qt Widget 入門① -様々なHello World編-
Qt Widget 入門① -様々なHello World編-Qt Widget 入門① -様々なHello World編-
Qt Widget 入門① -様々なHello World編-
 
Qt でIRCクライアント作ってみた
Qt でIRCクライアント作ってみたQt でIRCクライアント作ってみた
Qt でIRCクライアント作ってみた
 
Qt のコミュニティと日本語での情報発信②
Qt のコミュニティと日本語での情報発信②Qt のコミュニティと日本語での情報発信②
Qt のコミュニティと日本語での情報発信②
 
統一Qtコミュニティー
統一Qtコミュニティー統一Qtコミュニティー
統一Qtコミュニティー
 

Recently uploaded

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 

What's unique to Qt

  • 1. What's unique to Qt Junior High School at Otsuka, University of Tsukuba “Ubuntu Japanese Translators” team luyikei 盧 亦愷
  • 2. Self Introduction① ・ I was born in Fukushima in 1997. ・ Now I live in Tokyo. ・ When I began to use a computer at age 6, I had a mouse in my right hand, and a baby bottle in my left hand
  • 3. Self Introduction② ・ My first computer language is HTML. →Since I was 4th grade. ・ My second computer language is Visual Basic. →Since I was 7th grade. ・ My third computer language is Python →Since I was 8th grade. ・ I love Qt! →Since I was 9th grade.
  • 4. Contents ・ My first Linux ・ Why do I use Linux ・ How I develop GUI application on Linux ・ Visual C++ 2010 vs Qt4 ・ Qt vs GTK+ ・ What is unique to Qt4?
  • 5. ❶ My first Linux ・ I will talk about my Linux for the first time.
  • 6. One day... ・ I was using computer with Windows. & SOTEC A4170AV Windows XP SP2
  • 8. After a few days. ・ I checked my computer with Nortn Anti Virus...
  • 10. My first solution is ... ・ Recoveried with Symantec Ghost
  • 12. My second solution is... ・ Memtest86.
  • 13. Give up! ・ I rescued my data from my computer with KNOOPIX live cd. →This time was first time to use Linux. ・ I managed to recover my computer by Replacing its memory. old new
  • 14. Now I brought a new computer, and I installed Kubuntu.
  • 15. ❷ Why do I use Linux? ・ The reason is simple. ①Ubuntu is easy to use!!!!!!!!!!!!!!!!!!!! ②I don't like Windows design. ③To study server build. ④Ubuntu is light! ⑤Software manage is easy. ⑥Linux is good at study programming
  • 16. ❸How I develop GUI application on Linux
  • 17. My first GUI programming. ・ My first GUI programming is Visual Basic. →It is easy and quick. But...
  • 18. Oh my God! ・ My software can't working on Linux! on Visual Studio 2010 (.net framework) Linux
  • 19. I hope ... ・ I want to develop software that runs both on Windows and on Linux.
  • 20. My solution is... →Learning Qt programming. ・ Qt is a cross-platform application framework . ・ Qt's native language is C++.
  • 21. Qt works on ...① Qt works on the following platforms: ・ Windows ・ Windows CE ・ Mac OS X ・ Symbian ・ Embedded Linux ・ X Window System ・ Wayland
  • 22. Qt works on ...② External ports: →Since Nokia opened the Qt source code to the community on Gitorious various ports have been appearing. (by wikipedia) ・ OpenSolaris ・ Haiku ・ OS/2 ・ iPhone ・ webOS ・ Amazon Kindle
  • 23. Qt is used by ... KDE Ubuntu Unity 2D Adobe Photoshop Elements Adobe After Effects CS5 Adobe Premiere Pro CS5 Autodesk Maya 2011 VLC Nuke Google Earth Skype QCad Rosegarden MuseScore
  • 24. Qt can fit your PC's Theme
  • 25. Easy program developed by Qt① ・ I will make the program that can change letters on the button.
  • 26. Step1 ・ Set the button on the form.
  • 27. Step2 ・ Right-click on an button, and select “Go to slot...”
  • 29. Step4 ・ Write code “ui->puchButton->setText(“aaa”);”
  • 31. Easy program developed by Qt② ・ I will make the software without writing any code.
  • 32. Step1 ・ Set QDial on a form.
  • 33. Step2 ・ Set QSlider on the form too.
  • 34. Step3 ・ Connect Qdial with QSilder.
  • 35. Step4 Setting up the SIGNAL and SLOT SIGNAL: QDial - valueChanged SLOT: Qslider - setValue
  • 37. ❹Visual C++ 2010 vs Qt4 ・ Round1: IDE ・ Round2: Speed ・ Round3: Other
  • 38. Round1 : IDE ・ Visual Studio IDE
  • 39. Round1 : IDE ・ Qt Creator
  • 40. Code completion ・ Qt Creator ・ Visual Studio 2010 IDE (C+ +/CLI) It hasn't code completion.!!
  • 41. Layout ・ Qt Creator ・ Visual Studio 2010 IDE (C+ +/CLI) ・ Many layout tools ・ It doesn't has good layout tools.
  • 42. Round2: Speed ・ I'll compare the speed of Visual C++ 2010 with that of Qt4 ・ Qt4 Code ・ Visual C++ 2010 Code
  • 43. The resault is... ・ Qt4 ・ Visual C++ 2010 18 ・ Qt4 2 SecondSecond Wow!
  • 44. Round 3 Other ・ font Qt Creator Visual Studio IDE Which is better?
  • 46. Web Rendering engine ・ Qt4 is Webkit ・ Visual C++ 2010 is Trident
  • 47. What is webkit? ・ Webkit is used by Safari , Google Chrome ≒
  • 48. Actually ・ WebKit's HTML and JavaScript code originally began as a fork of the KHTML and KJS libraries from KDE, ・ KHTML is the HTML layout engine developed by the KDE project. ・ It is used by Konqueror. ・ Now Webkit is developed by Apple, KDE, Nokia, Google, etc...
  • 49. How about Trident? ・ Trident is used by Internet Explorer. X-)
  • 50. I have built Simple Browser With Qt4 With Visual C++ 2010 (C++/CLI)
  • 51. And Judgment Browser type by Java Script <SCRIPT type="text/javascript"> var userAgent = window.navigator.userAgent.toLowerCase(); var appVersion = window.navigator.appVersion.toLowerCase(); if (userAgent.indexOf("msie") > -1) { if (appVersion.indexOf("msie 6.0") > -1) { alert("IE6"); } else if (appVersion.indexOf("msie 7.0") > -1) { alert("IE7"); } else if (appVersion.indexOf("msie 8.0") > -1) { alert("IE8"); } else { alert("Unknown"); } } else if (userAgent.indexOf("firefox") > -1) { alert("Firefox"); } else if (userAgent.indexOf("opera") > -1) { alert("Opera"); } else if (userAgent.indexOf("chrome") > -1) { alert("Google Chrome"); } else if (userAgent.indexOf("safari") > -1) { alert("Safari"); } else { alert("Unknown"); }
  • 52. Resualt ・ Qt Browser is... Safari ・ Visual C++ Browser is... Internet Explorer 7
  • 54. Acid2 Browser Test Acid2 is a test page published and promoted by the Web Standards Project to expose web page rendering flaws in web browsers and other applications that render HTML. Correct result
  • 57. Acid 3 Browser Test Acid3 test is a web test page from the Web Standards Project that checks a web browser's compliance with elements of various web standards, particularly the Document Object Model (DOM) and JavaScript. Correct result
  • 60. Support languages ・ Qt4 ・ Ada ・ C++ ・ C# & .NET ・ D ・ Haskell ・ Harbour ・ Java ・ Lisp ・ Lua ・ Visual Studio ・ Visual Basic ・ Visual C# ・ Visual C++ ・ Perl ・ PHP ・ Python ・ QML ・ R ・ Ruby ・ Scheme ・ Tcl ・ Qt4 wins landslide victory!!!
  • 61. You can develop software with Qt now!
  • 62. How about other GUI tool kit?
  • 63. ❺ Qt vs GTK+ vs
  • 64. GTK+ works on ... Official ・ X Window System ・ Windows ・ Mac OS X Developing... ・ HTML5 ・ Wayland GTK+ is lesser than Qt. 15 5:
  • 66. GTK+ doesn't have an official IDE. And It's not easy to use than Qt Creater.
  • 67. Hello World Program ・ Qt #include <QtGui> int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel label("Hello, world!"); label.show(); return app.exec();
  • 68. GTK+ is ... #include <gtk/gtk.h> int main (int argc, char *argv[]) { GtkWidget *window; GtkWidget *label; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); label = gtk_label_new ("Hello, World"); gtk_container_add (GTK_CONTAINER (window), label); gtk_widget_show_all (window); gtk_main (); return 0; }
  • 69. Worst weakness ・ If you make a program of GTK+ except for GIMP and Pidgin, doesn't work Japanese input method on Windows and Mac OS X
  • 70. ❻ What is unique to Qt4?
  • 71. Code less. ・ As I have already mentioned before, Qt is code less.
  • 72. SIGNAL and SLOT ・ The mechanism of SIGNAL and SLOT, We don't need any code often!
  • 73. Create more. ・ Qt has a good IDE that Qt Creater!
  • 74. Deploy everywhere. ・ As I have already mentioned before,Qt is a cross- platform application framework .
  • 75. Thank you! ・ Thank you for listening! I'll be happy if you like qt!