Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Qt (software)
(section)
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]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)