Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Qt (software)
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Qt concepts === Qt is built on these key concepts: ;Complete abstraction of the GUI: When first released, Qt used its own paint engine and controls, emulating the look of the different platforms it runs on when it drew its widgets. This made the porting work easier because very few classes in Qt really depended on the target platform; however, this occasionally led to slight discrepancies where that emulation was imperfect. Recent versions of Qt use the native style APIs of the different platforms, on platforms that have a native widget set, to query metrics and draw most controls, and do not suffer from such issues as often.<ref>{{cite web|url=http://qt.digia.com/Product/Qt-Core-Features--Functions/Library/|title=Library|quote=Qt uses the native graphics APIs of each platform it supports, taking full advantage of system resources and ensuring that applications have native look and feel.|publisher=Digia|url-status=dead|archive-url=https://web.archive.org/web/20131101011752/http://qt.digia.com/Product/Qt-Core-Features--Functions/Library/|archive-date=1 November 2013}}</ref> On some platforms (such as MeeGo and KDE) Qt ''is'' the native API. Some other portable graphical toolkits have made different design decisions; for example, [[wxWidgets]] uses the toolkits of the target platform for its implementations. ;[[Signals and slots]]: A language construct introduced in Qt for communication between objects<ref>{{cite web|url=https://doc.qt.io/qt-5/signalsandslots.html |title=Signals & Slots - QtCore 5.1 |publisher=Qt Project |date=4 July 2013|access-date=10 April 2015}}</ref> which makes it easy to implement the [[observer pattern]] while avoiding [[boilerplate code]]. The concept is that GUI [[GUI widget|widgets]] can send signals containing event information which can be received by other controls using special functions known as slots. ;Metaobject compiler: The [[metaobject]] compiler, termed ''moc'', is a tool that is run on the sources of a Qt program. It interprets certain macros from the C++ code as annotations, and uses them to [[Automatic programming|generate added C++ code]] with meta information about the classes used in the program. This meta information is used by Qt to provide programming features not available natively in C++: signals and slots, [[Type introspection|introspection]] and asynchronous function calls. ;Language bindings:Qt can be used in several [[programming language]]s other than C++, such as Python, Javascript, C# and Rust<ref> {{cite web|url=https://www.vandenoever.info/blog/2018/10/30/building_qt_apps_with_cargo.html|title=Qt applications with Cargo|date=30 October 2018|website=www.vandenoever.info|access-date=25 April 2019}}</ref> via [[language binding]]s; many languages have [[list of language bindings for Qt 5|bindings for Qt 5]] and [[list of language bindings for Qt 4|bindings for Qt 4]].
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Qt (software)
(section)
Add topic