{"id":2065,"date":"2017-12-26T20:04:12","date_gmt":"2017-12-26T14:34:12","guid":{"rendered":"http:\/\/localhost:8081\/system-on-module-som\/?p=2065"},"modified":"2023-08-15T12:33:14","modified_gmt":"2023-08-15T07:03:14","slug":"qt-vs-gtk-vs-wxwidgets-a-comparative-study","status":"publish","type":"post","link":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/qt-vs-gtk-vs-wxwidgets-a-comparative-study\/","title":{"rendered":"Qt Vs GTK+ Vs WxWidgets &#8211; A Comparative Study"},"content":{"rendered":"<p class=\"western\"><span style=\"font-size: medium;\"><span style=\"color: #333333;\">One of the decisions we need to take when building a UI for devices is what graphical libraries to use. With Open Source software, there is often more than one good option. <\/span><\/span><\/p>\n<p class=\"western\"><span style=\"font-size: medium;\"><span style=\"color: #333333;\">There are many factors based on which we decide the right graphical library for the application, some of them are:<\/span><\/span><\/p>\n<ul>\n<li>\n<p class=\"western\"><span style=\"font-size: medium;\"><span style=\"color: #333333;\">Does the application need to run on Windows or MacOS or Linux or Android or all (cross platforms) ?<\/span><\/span><\/p>\n<\/li>\n<li>\n<p class=\"western\"><span style=\"font-size: medium;\"><span style=\"color: #333333;\">Does the application need dynamic effects and animations like iOS or Android?<\/span><\/span><\/p>\n<\/li>\n<li>\n<p class=\"western\"><span style=\"font-size: medium;\"><span style=\"color: #333333;\">Does the application need to run on CPU or GPU ?<\/span><\/span><\/p>\n<\/li>\n<li>\n<p class=\"western\"><span style=\"font-size: medium;\"><span style=\"color: #333333;\">Does the application need Internationalization support ?<\/span><\/span><\/p>\n<\/li>\n<li>\n<p class=\"western\"><span style=\"font-size: medium;\"><span style=\"color: #333333;\">Does the application need native look and feel ?<\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"western\"><span style=\"font-size: medium;\"><span style=\"color: #333333;\">In this article, we\u2019ll look at three cross-platform GUI toolkits.<\/span><\/span><\/p>\n<p class=\"western\"><span style=\"font-size: medium;\"><b>GTK+<\/b><\/span><\/p>\n<address class=\"western\"><strong><span style=\"color: #333333;\"><span style=\"font-size: medium;\">GTK+<\/span><\/span><\/strong><span style=\"color: #333333;\"><span style=\"color: #333333;\"><span style=\"font-size: medium;\">(GIMP Toolkit) is a cross-platform widget toolkit for creating graphical user interfaces, mainly used environments GNOME, XFCE, LXDE, ABIWORD, GNUMERIC, ROX, etc; It can also be used on Windows, MacOS and mobile devices.<\/span><\/span><\/span><\/p>\n<\/address>\n<address class=\"western\"><strong><span style=\"color: #333333;\"><span style=\"font-size: medium;\">GTK+ i<\/span><\/span><\/strong><span style=\"color: #333333;\"><span style=\"font-size: medium;\">s one of the most popular toolkits for the X Window System. This was initially created for the GNU Image Manipulation Program (GIMP), a raster graphics editor, in 1997 by Spencer Kimball and Peter Mattis, members of eXperimental Computing Facility (XCF) at University of California, Berkeley. This is used as the standard toolkit for the GNOME, LXDE and Xfce Desktop Environments.<br \/>\n<\/span><\/span><\/address>\n<address class=\"western\"><span style=\"font-size: medium;\"><span style=\"color: #333333;\">GTK + has been created using the c language, with object orientation, but its design allows programming with languages such as C, C ++, C #, Java, Ruby, Perl, PHP or Python through bindings.<\/span><\/span><\/address>\n<address>&nbsp;<\/address>\n<address class=\"western\"><b>Qt<\/b><\/address>\n<address>&nbsp;<\/address>\n<address class=\"western\"><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><strong>Qt<\/strong> is a multiplatform library (windows, mac, GNU \/ Linux, mobile, etc.) to develop graphical user interfaces and also without graphical interfaces for the console. Qt made with the C ++ programming language, it can additionally be used in several other programming languages through bindings (py<\/span><\/span><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\">thon, c #, net, ruby, Java, Ada, php, etc).<\/span><\/span><\/em><\/address>\n<address class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><br \/>\n<\/span><\/span><\/em><span style=\"color: #333333;\"><span style=\"font-size: medium;\">It works on all major platforms, and has broad support from both companies and research community. Qt not only allows you to create the graphical interface, but also offers an entire API of the library, with methods to access databases through SQL, as well as the use of XML, thread management, network support, file manipulation, etc.<\/span><\/span><\/address>\n<address>&nbsp;<\/address>\n<address class=\"western\"><b>WxWidgets<\/b><\/address>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><b>WxWidgets<\/b> is a C ++ library that allows developers to create applications for Windows, OS X, Linux and UNIX 32-bit and 64-bit architectures, as well as several mobile platforms such as Windows Mobile, iPhone SDK and built-in GTK +. It has language bindings for Python, Perl, Ruby and many other languages. Unlike other multiplatform toolkits wxWidgets gives your applications a native look and feel, as it uses the platform&#8217;s native API instead of emulating the graphical user interface. It is also open source and mature.<\/span><\/span><\/em><\/p>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">Going by the trends, Qt clearly is going forward and has potential to land on devices of any form-factor. At e-con we have developed several visually appealing and intuitive user interfaces for our customers using Qt QML on our eSOMiMX6 devices with great performance. <\/span><\/span><\/span><\/em><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\">We strongly support Qt on our embedded platforms.<\/span><\/span><\/em><\/p>\n<p><em>Are you looking to quickly develop an application using Qt? Then, the e-con Systems\u2122 <\/em><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"zxx\"><a href=\"https:\/\/www.e-consystems.com\/iMX6-micro-som-system-on-module.asp\">eSOMiMX6<\/a> <\/span><\/span><\/span><\/em><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\">based Ankaa kit might be a good solution for you.<br \/>\n<\/span><\/span><\/em><\/p>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\">Please visit our <\/span><\/span><\/em><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"zxx\"><a href=\"https:\/\/www.e-consystems.com\/auth\/Account\/login\">developer website<\/a> <\/span><\/span><\/span><\/em><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\">to download various articles and supporting sample programs on Qt.<\/span><\/span><\/em><\/p>\n<p><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">For further assistance and queries please get in touch with <\/span><\/span><\/span><\/em><em><a href=\"mailto:sales@e-consystems.com\"><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">sales@e-consystems.com<\/span><\/span><\/span><\/a><\/em><\/p>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">Please download the following files from the <\/span><\/span><\/span><\/em><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\"><b>Qt-Basics, Qt-Intermediate<\/b><\/span><\/span><\/span><\/em><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\"> packages available in our <a href=\"https:\/\/www.e-consystems.com\/auth\/Account\/login\">developer site<\/a> to build and try Qt applications on eSOMiMX6.<\/span><\/span><\/span><\/em><\/p>\n<ul>\n<li>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">Hello World<\/span><\/span><\/span><\/em><\/p>\n<\/li>\n<li>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">My First QML Application<\/span><\/span><\/span><\/em><\/p>\n<\/li>\n<li>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">My First Qt Widget Application<\/span><\/span><\/span><\/em><\/p>\n<\/li>\n<li>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">Graphs<\/span><\/span><\/span><\/em><\/p>\n<\/li>\n<li>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">Image Viewer<\/span><\/span><\/span><\/em><\/p>\n<\/li>\n<li>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">Virtual Keyboard<\/span><\/span><\/span><\/em><\/p>\n<\/li>\n<li>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">USB camera streaming and capture<\/span><\/span><\/span><\/em><\/p>\n<\/li>\n<li>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">Launcher Application<\/span><\/span><\/span><\/em><\/p>\n<\/li>\n<li>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">Image Slideshow<\/span><\/span><\/span><\/em><\/p>\n<\/li>\n<li>\n<p class=\"western\"><em><span style=\"color: #333333;\"><span style=\"font-size: medium;\"><span lang=\"en-IN\">WebEngine<\/span><\/span><\/span><\/em><\/p>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>One of the decisions we need to take when building a UI for devices is&#8230;<\/p>\n","protected":false},"author":17,"featured_media":2066,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[212,213,343,127,340,341],"tags":[377,133,207,129,121,139,378],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/posts\/2065"}],"collection":[{"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/comments?post=2065"}],"version-history":[{"count":3,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/posts\/2065\/revisions"}],"predecessor-version":[{"id":2811,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/posts\/2065\/revisions\/2811"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/media\/2066"}],"wp:attachment":[{"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/media?parent=2065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/categories?post=2065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/tags?post=2065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}