Qt


  • As a developer, you're probably familiar with the concept of Design Patterns [1], but you may not have heard of the term anti-pattern. First coined by Andrew Koenig, the term anti-pattern or AntiPattern [2] refers to a commonly used programming practice that has proven to be ineffective,…

    Blog
  • A previous blog post (1) described how we've been using Google Analytics at ICS to collect usage information for a Kiosk application. In this second blog post, I'll present more technical information about how to use Google Analytics from C++ code and how Qt makes this very easy to implement.…

    Blog
  • Every Qt developer should be familiar with the common tools like qmake, Qt Designer and Assistant, but looking in your Qt installation's bin directory will reveal a few more programs there. In this and future blogs, we'll look at some of the lesser known Qt development tools.First, let's…

    Blog
  • For years C and C++ have been the dominant system programming languages, especially for high-performance and embedded applications. While I don't think that will change any time soon, there is an interesting alternative that has been increasingly growing in popularity: Rust. Let's take a look…

    Blog
  • A new feature in Qt version 5 is an executable program similar to qmlscene that can execute QML files. It is sometimes referred to as the QML Tooling or QML Run-time, although both of these terms are sometimes used to refer to other aspects of QML. A few colleagues mentioned to me that…

    Blog
  • While much attention has been focused on the built-in WiFi hardware, the Raspberry Pi 3 (1) also ships with on-board support for Bluetooth. Bluetooth is a wireless technology for exchanging data over short distances using 2.4 GHz radio signals.When running the recommended Raspbian Linux…

    Blog
  • As a developer, there are a number of useful tools that you always want to have in your arsenal for testing and debugging. This includes debuggers, memory checkers and performance profilers.In this blog post I would like to present some information about a profiler tool that I feel deserves more…

    Blog
  • The Qt Speech module was introduced in Qt 5.8.0. I made a blog post at that time (June 2017), looking at how it provided cross-platform support for text-to-speech. With the Qt 6.0.0 release, Qt Speech was one of the modules that were no longer available. In the upcoming Qt 6.4.0 release, it is…

    Blog
  • Qt 6.5.0 is hot off the presses! Here's a look at what is new and significant in this release, from a new tool to create shader effects for Qt Quick to Qt QML Core, a new module that exposes Qt Core APIs to QML. Qt Release HistoryThe Qt 6.5 release effort started around November of 2022…

    Blog
  • In this blog post, the last in the series, I'll cover the remaining Qt command line tools as there are only a few programs we have not already discussed.xmlpatterns and xmlpatternsvalidatorThese two XML-related tools are for working with Qt's XQuery support. XQuery is a query and functional…

    Blog
  • Download the entire webinar series.What is Qt's take on T2S applications?Assuming this refers to TARGET2-Securities, the European securities settlement engine, I don't know of anything relevant in Qt except possibly the Qt Purchasing API which supports In-App Purchases, but could potentially…

    Blog
  • Sometimes an application needs to use different assets, such as graphics images or QML files, depending on the platform that the application is running on.One way to do this is with conditional code at compile time using the C++ pre-processor (i.e. #ifdefs). It can also be done with conditional…

    Blog
  • In this blog post, I'll present a few tips and tricks for using Qt of which you may not be aware. These are small topics that I didn't feel justified an entire blog post of their own and were collected by polling the ICS Qt consulting team.Qt ExtrasThere are platform-specific features available in…

    Blog
  • In this blog post, we will show an example of how to support dynamic language selection in an application using Qt. By "dynamic", I mean that the application can change the displayed language from within the application at run-time, rather than picking it up from the locale once on startup.Text or…

    Blog
  • In this post we'll take a look at one of the newer Qt modules: Qt Speech.What Is Qt Speech?Qt Speech is a module providing cross-platform support for text to speech. It supports text to real-time speech output. Common use cases for text to speech include enabling software for visually impaired…

    Blog
  • Various tools that can be lumped together under the category of simulators and emulators can be useful during development, especially for embedded systems. A number of products use virtualization to run one operating system on top of another one. This allows you to run Linux on top of Windows, for…

    Blog
  • Memory and resource leaks are the stuff of nightmares for programmers. If a program doesn't properly free memory or other resources, it may appear to run correctly, but randomly crash or misbehave after working normally for hours or days. All too often, the problem is only discovered just before…

    Blog
  • Perhaps you have been trying to do more with QML than just using the basic elements like rectangles, text and images, or maybe you have been struggling to implement a user interface that doesn't map well into these basic elements. If so, the QML Canvas may be just the solution you are looking for…

    Blog
  • IntroductionThis blog posting gives an introduction to the Qt Graphical Effects module which is available in Qt 5. As of Qt 5.1 the module offers 25 QML components which support effects in these categories: blend, color, gradient, distortion, drop shadow, blur, motion blur, glow and mask.List of…

    Blog
  • Earlier this year, The Qt Company announced that Python would be officially supported in Qt via the Qt For Python (formerly PySide2) Python bindings and tooling. In June 2018, the first technical preview was offered, built against the Qt 5.11 release.I have some experience with Python, including…

    Blog
  • In this blog post we'll look at a little-known feature of Qt that can make your applications more user friendly: the QCompleter class. QCompleter provides completions for user entry, based on an item model. It is supported by the QLineEdit and QComboBox widgets.When a user enters text, the…

    Blog
  • Many programs need to accept command line options. For all but the simplest programs, the logic to validate and parse command line options can be significant. Support for handling this beyond what is provided by the standard C/C++ run-time library has been a long-missing Qt feature.While it may…

    Blog
  • Starting with version 8.0.0 the Qt Creator IDE has a useful new plugin that allows you to browse and clone projects from a GitLab server. While easy to use, it is not well documented, so I thought I would write a blog post that describes how to configure and use it.RequirementsYou will need Qt…

    Blog
  • IntroductionQt 5 introduced a new set of multimedia APIs. Both C++ and QML APIs are provided. In this blog post, I will give an overview of the QML APIs for multimedia.Multimedia QML ElementsThe QtMultimedia module provides the following QML components:NameDescriptionVideoA convenience type for…

    Blog
  • IntroductionWith most C++ compilers now providing good support for the latest language standard, C++11, let's look at some of the new language features that are particularly useful for use in Qt programs. I won't cover all the new C++11 features; just some that in my experience are particularly…

    Blog
  •  IntroductionQt Quick's QML language makes it easy to do many things, especially fancy animated user interfaces. However, some things either can't be done or are not suitable for implementing in QML, such as:Getting access to functionality outside of the QML/JavaScript environment.…

    Blog
  • Feedback from our recent Qt for Beginners webinar series indicated a need for some basic tutorials for beginners. If you struggle with initially getting Qt set up for development with the Qt Creator IDE and a C++ compiler, this post is for you.  I'll walk you step by step through the…

    Blog
  • Computer software sometimes has a requirement for generating random numbers. Applications include games, simulations, cryptocurrency, and security software. Generating true random numbers is surprisingly difficult, and many applications use a series of pseudorandom numbers, sometimes seeded with an…

    Blog
  • You have probably used the QTimer class for basic timing operations in Qt. Common use cases include polling for events (not always a good approach, but sometimes necessary), updating the user interface or performing some other function at regular intervals. And you probably know about the…

    Blog
  • It is often desirable to log events from an application, like errors or debug information, to a log file or even to a different computer. A new feature of Qt in version 5.6.0 is the ability to direct the output of the commonly used Qt message logging functions to the standard syslog and…

    Blog
  • Developers often have a desire to speed up their code to make it run more quickly. Some well-known advice on this topic, attributed to the programmer Michael A. Jackson, says:Rules of Optimization:Rule 1: Don't do it.Rule 2: (for experts only) - Don't do it yet.Sometimes a third rule is added:Rule…

    Blog
  • In an earlier blog post (1) I described how to create a widget with a Qt Designer plugin interface so it can be viewed within Qt Designer. With the increased interest in using Qt from the Python programming language, I asked one of our developers to reproduce the same example, …

    Blog
  • My recent blog post covered how to set up Qt and Qt Creator on a Windows 10 system. In this post I'll look at how to configure a Linux system for Qt desktop development.Since the set up process on Linux is almost identical to that on Windows, rather than repeat the information I refer you…

    Blog
  • Two earlier blog posts (1) (2) covered how to set up Qt and Qt Creator on Windows and Linux systems. Let's look at installation on the remaining major desktop platform, macOS.Thanks to the unified Qt installer, the process is very similar to that on Windows and Linux, so we'll just cover some…

    Blog
  • Editor's note: This 2019 blog series, among ICS' most popular,  has been updated (December 2022) to ensure the content is still accurate, relevant and useful.  This blog launches Integrated Computer Solutions' (ICS) new series on GPIO programming. GPIO, or General-Purpose Input/…

    Blog
  • Originally published in 2018 with a focus on Qt 5, this post has been updated in 2025 to reflect the current state of input masks and validators in Qt 6.Handling user input gracefully is crucial for building polished, user-friendly applications. In this blog post, we’ll dive into how Qt helps…

    Blog
  • Here’s how I built a secure, rules-driven translation tool for air-gapped environments, using AI to speed code migration without ever connecting to the cloud.Do electric sheep know Motif?I’m a software engineer who has worked across desktop apps, embedded systems, and defense projects. As a former…

    Blog
  • Try running an application without a shared library it depends on, and you'll be met with a frustrating error message. An application is nothing without its shared libraries—unless, of course, those libraries are plugins. Plugins can be loaded and unloaded at will, their absence goes unnoticed, and…

    Blog
  • While technologies come and go in the software industry, some have stuck around for a very long time. One notable example: The X Windows System, and with it the Motif widget toolkit. In use since the 1980s, X Windows was the first windowing system environment to offer true hardware independence.…

    Blog
  • In the realm of software development, choosing the appropriate framework is paramount to project success. When considering cross-platform application development, two prominent options are Qt and Flutter. Qt, established pre-1995, boasts a robust toolkit built on C++, providing versatility beyond…

    Blog
  • In Part 1 of our series on CMake, an open-source, cross-platform family of tools designed to build, test and package software, I provided an overview and showed you how to build a basic CMake project. In today’s Part 2, I’ll show you how to find libraries and link them to your application. When…

    Blog
  • Qt developers are a passionate bunch. They love to talk about new features, new versions. How cool is this and what needs to be done with that. And it all makes sense. New features and new versions are, eh, new and exciting.  The essential part of Qt though is taken for granted. Most of the…

    Blog
  • Part of my job is to prepare Yocto setups for our customers' devices. My goal is twofold: set up an environment a client can easily reproduce; and ensure this environment also allows developers to have multiple projects at the same time. In this blog post I explore the workflow I use in order to…

    Blog
  • As The Qt Company has shifted its focus from qmake to cmake, it is time to revisit a previous blog post on the Qt Installer Framework. The post presented a small qmake example in which the generation of an application's installer was part of its build. Today, I'll illustrate how to do the same…

    Blog
  • Concluding our series on microcontrollers (MCU), I want to turn your attention to NXP hardware as NXP’s I.Mx RT series of MCUs are a popular hardware for low-cost embedded GUI projects. With The Qt Company, a major player in GUI frameworks, demos are not bundled. For this reason, I’ve created…

    Blog
  • Choosing the right GUI framework for your microcontroller (MCU) target can be a make it or break it decision for achieving your product goals. Your GUI framework needs to be able to produce a great-looking UI. But, it can’t take all the resources needed for the product to be functional. We’ve put…

    Blog
  • Microcontrollers are transforming consumer goods, industrial automation, infrastructure and more — essentially reshaping how we interact with the world around us. Exciting stuff! Let me share with you some of the capabilities of Qt for MCUs, as well as offer an at-a-Glance reference. It’s a…

    Blog
  • The latest release of Qt, version 6.0, arrived not only with API cleanups but also improvements in performance. The binding engine was brought into the C++ side of the Qt API, allowing C++ developers to take advantage of the powers of binding. This not only enhances performance, but also code…

    Blog
  • Unit testing is becoming an essential part of the software implementation process. Test-driven Development (TDD), for instance, mandates that before a requirement is even implemented a corresponding test case must be written. In the context of Graphic User Interfaces (GUI), developers are often…

    Blog
  • *Image courtesy of KDE.org I had the opportunity to attend Akademy 2020, KDE’s annual world summit — a free, non-commercial event organized by the KDE community. In case you’re not familiar with KDE, it’s an international team cooperating on development and distribution of free, open source…

    Blog
  • This ongoing series provides a close-up look at our work helping two non-profit organizations, RespiraWorks and Project RED, create low-cost ventilators to fight COVID-19 in countries with developing economies. Progress reports will be posted regularly. June 4, 2020 No one…

    Blog
  • One of the most effective software engineering approaches involves separating the user interface (UI) or frontend from the business logic or backend, especially when it comes to developing embedded devices. This practice makes it far easier to code for a single specific functionality versus coding…

    Blog
  • One of the most frequent comments we get after we introduce our new GreenHouse by ICS solution to a customer is “this sounds a lot like Qt Design Studio.” And it’s no wonder. At ICS, we often talk about integrating user experience (UX) designers into the device development process in a way that…

    Blog
  • Building a new device challenges the skills of a software engineering team to the extreme. Although code reuse has been the motto of software development for years, in reality very little code is re-used (aside from personal “tricks”). In fact, most code isn’t written to facilitate reuse because of…

    Blog
  • You just shipped your impressive new product, built on the latest System on a Chip (SOC) from XYZ Microsystems. You chose this SOC because it decreased your parts count and reduced your manufacturing bill of materials. And with its fast CPU, this SOC powers your product to process four times as…

    Blog
  • Successful touch devices appear deceptively simple to the user. In reality, they are highly complex and challenging to build because they require so many different skills. Each device requires custom hardware, touchscreen, operating system and web connectivity, as well as  custom software.…

    Blog
  • In the world of Qt, the QTimeline object is intended to help control animations. It is an object that acts somewhat like a timer: it has a duration and an interface for start/stop/resume functions. But a QTimeline object does more. It has a value that changes from beginning to end and has an update…

    Blog
  • Large files — I’m talking really large, say 8 gb — can be frustrating to download. How much fun it is to stare at the spinner icon or progress bar for more than a few seconds, let alone hours? When we first came up with an interactive storytelling tool called ViewPoint we butted up against this…

    Blog
  • In the final installment in our QML Controls from Scratch series, this time we will implement an English-only Keyboard. There are typically three ways to display a virtual keyboard in a QML app: 1. Qt Virtual Keyboard 2. Use the keyboard that ships with the operating system (e.g. on Windows 10…

    Blog
  • In this installment of our QML Controls from Scratch series we'll implement a ProgressBar, which is often used to indicate the progress of a long-running operation from 0 to 100%. ProgressBar is a read-only control so it's pretty simple, save for the math required to compute…

    Blog
  • The market for embedded software development is one of the fastest growing areas of computing. But as the market grows, so too does the complexity of the devices. At a time when manufacturers are demanding more sophisticated "iPhone like" user interfaces and greater product functionality, today’s…

    Blog
  • Continuing our QML Controls from Scratch series, this time we will implement a BarChart. Many people who need charts in their application wonder if they need a charting library, but it turns out to be not that difficult to write a custom autoscaled chart. The public interface consists of a title…

    Blog
  • QML provides a powerful and flexible framework for developing user interfaces (UI). The basic elements provided are low level, so you typically need to build up the components of your UI into widget-like controls. Creating a set of common QML controls can greatly reduce the overall…

    Blog
  • Continuing our QML Controls from Scratch series, this time we will implement a DatePicker, which allows the user to select any calendar date (year, month, day). DatePicker's public interface consists of a set() function and a clicked() signal. A function set() is used instead of a property since…

    Blog
  • Continuing our QML Controls from Scratch series, this time we implement a TimePicker, which allows the user to select a time in terms of hours, minutes and am/pm. TimePicker's public interface consists of a set() function, a clicked() signal, and an interval property (to specify the…

    Blog
  • Continuing our QML Controls from Scratch series, this time we will implement a Table (i.e. a two-dimensional matrix of strings supporting an arbitrary number of rows and columns). The Table consists of two main parts: header and data. Consequently, it has two public properties (headerModel and…

    Blog
  • Continuing our QML Controls from Scratch series, this time we will implement Tabs. They are used to expand limited screen real estate by providing two or more "tabs" that divide the user interface into screens (content), only one of which is shown at a time. The Tabs control only renders the…

    Blog
  • Continuing our QML Controls from Scratch series, this time we implement PageDots. They are often used in conjunction with ListView.SnapOneItem to indicate what "page" is currently shown. The public properties are page and pages to indicate the current page and total number of pages…

    Blog
  • div.body h2 {margin-top:30px;} Continuing our QML Controls from Scratch series, this time we will implement a Dialog that supports an arbitrary number of Buttons (and we reuse our Button control). Its public API includes the text to show, an array of strings for the buttons, and a clicked()…

    Blog
  • This blog is the third in an occasional series on ZeroMQ. For background, read part 1 and part 2. ZeroMQ encourages us to think in terms of patterns — what we are going to do rather than how we're going to do it. We don't need to worry about the how since ZeroMQ takes care of it. …

    Blog
  • Continuing our QML Controls from Scratch series, this time we will implement a Spinner, also known as a busy indicator. Spinner indicates the progress of a long-running operation when the progress percentage is unknown. (For known percentages, we'd use a ProgressBar.) Spinner…

    Blog
  • Today’s market is global and many companies have begun to fully embrace Internationalization in their applications. If you are not familiar, Internationalization is the process of designing a software application in a way that it can be easily adapted for use in languages and locales other than the…

    Blog
  • Regular Expressions are tools for finding patterns in data. They are an extremely powerful tools, but are also full of arcane rules and cryptic combinations of symbols. Good user interface (UI) design can use Regular Expressions, but shouldn’t require the end-user to enter the Regular…

    Blog
  • In part one of this blog series we explained the concept of model-view design and explained the need for a more advanced process for handling dynamic data. In part two, we illustrate the power of Qt Quick’s model-view-delegate framework with an example application that downloads mp3 files from…

    Blog
  • The speed on your car’s dashboard, the temperature on your cabin’s thermostat, the heart rate on your wearable device. These values originate from an external source, populate a model, and then make their digital way to a display. The task of the GUI developer is to write code that fetches this…

    Blog
  • As the first interaction a user will have with your desktop application, critical, necessary and hopefully welcoming, an installer is often overlooked and in need of some love. So to give it its necessary due, here's an overview of a tool that may help: the Qt Installer Framework. Installing…

    Blog
  • Yocto can be intimidating for newcomers — even challenging for seasoned users. But, the benefits of gaining ease with Yacto far outweigh the pain endured. Here are four tips and tricks that can come in handy when working with Yocto. (If you’re brand new to Yacto, check out Yocto Quick Start…

    Blog
  • Voice has always been recognized as an ideal way for a driver to interact with an auto because it reduces driver distraction. However, the lack of familiarity with most current automotive voice systems, along with their constrained set of commands, has resulted in low use and adoption rates.…

    Blog
  • Qt Creator wizards are powerful code-generation tools that expedite time to development. In this article, I'll discuss the types of Qt Creator wizards that are available to developers at present, with a focus on templated wizards. I'll also provide helpful tips for preparing to write them. Qt…

    Blog
  • Concise Binary Object Representation (CBOR) format is a compact form of binary encoding for data serialization. It is similar to JSON in that most data is represented by name-value pairs, and its design emphasizes compactness for better processing and transmission speeds. The format was…

    Blog
  • When writing an application with Qt, do you need a way to represent dates? Do you want to be able to display dates in a variety of ways, say in a report? Or do you need to do calculations with dates — what date is three years, five months, and four days from now? All this and more can be handled by…

    Blog
  • Media, Navigation and Voice Chrome Apps Showcased on Automotive Grade Linux at CES 2019  WALTHAM, MA; ESPOO, FINLAND — January 8, 2019 — Integrated Computer Solutions (ICS), creators of embedded, touch and voice-enabled devices, today announced that it has created three Automotive Grade…

    Basic page
  • ICS is joining The Qt Company in Dallas, TX (September 20) for a Meet Qt seminar. Connect with fellow Qt users and hear ICS' Roland Krause discuss and show the integration of Amazon Alexa into Qt  on our IVI media manager and cockpit control system. Attendance is free,…

    Basic page
  • ICS is a gold sponsor and training partner at the upcoming Qt World Summit in Boston, where leading technology innovators, industry experts, startups and device creators will share their insight on the future of cross-platform application developent. The Westin Boston Waterfront 29…

    Basic page
  • Last week, I introduced you to ZeroMQ, a high-performance asynchronous messaging library, aimed at use in distributed or concurrent applications. Now, I’ll show you how to actually build a library from source code. Building a Library from Source Code Our best resource is http://zeromq.org/…

    Blog
  • Are you a Qt developer interested in creative ways to build a messaging service for your app? If so, this blog is for you. I’ll introduce you to ZeroMQ and show you what you could do in Qt to implement messaging in your application. Here’s why you should you care about ZeroMQ: It speaks your…

    Blog
  • In this blog post we'll explore the basic steps to deploy a Qt application for macOS, including assigning an icon for the application and adding assets. It is assumed that you have Qt Creator and Qt version 5.7.1 or later installed and configured on your macOS computer. If not, this blog…

    Blog
  • We’re back from another successful Qt World Summit in Berlin, which boasted the largest crowd (1000+) to date. The popularity of the conference is a strong indicator that the Qt community continues to grow as does the number of commercially available products built with Qt. Our booth alone…

    Blog
  • Migrating from Photon to Qt from ICS    

    Basic page
  • Best Practices in Qt Quick/QML - Part 3 from ICS  

    Basic page
  • Continuing our QML Controls from Scratch series, this time we will implement a vertical ScrollBar, which is the vertical line segment you often see on the right of a touch user interface as you scroll vertically through a list of items. ScrollBar is quite a bit different than the other controls…

    Blog
  • When launching a new project using Qt, you have to decide whether to buy a commercial license or use the free, open source version. It’s an easy decision. Free is better, right? Well, not always. Here's why. In a typical year, ICS works on more than 75 new and unique embedded devices based…

    Blog
  • Continuing our QML Controls from Scratch series, this time we will implement a Slider. The Slider has value, minimum, and maximum public properties. Slider is implemented with a single MouseArea that covers the entire control and utilizes drag to handle the user sliding the "pill" (the…

    Blog
  • Continuing our QML Controls from Scratch series, this time we will implement a Switch. Switch is similar to CheckBox with the exception that it has a slidable pill (implemented with a MouseArea and drag property) and no text property. A Switch can be toggled either by tapping or dragging. Switch…

    Blog
  • QML provides a very powerful and flexible framework for developing user interfaces. The basic elements that are provided are low level, so you typically need to build up the components of your user interface into widget-like controls. Developing a set of common QML controls can greatly reduce the…

    Blog
  • January 5, 2017 ICS is excited to be a silver sponsor and join other automotive stakeholders from all over the world at the GENIVI Demonstration Showcase at the Consumer Electronics Show (CES) this January. GENIVI has a long and successful history at CES and the 2016 edition is expected to be…

    Basic page
  • Educate Your Team on the Best Practices of Using Squish in Your Environment Accelerate The Use of Squish Within Your QA Team Jumpstart for Squish® is a 5-day service engagement that includes formal training, installation, infrastructure development and test creation by ICS experts. You should…

    Basic page
  • Integrated Computer Solutions (ICS), a leader in Qt consulting, custom software development and user experience design, is proud to offer four tactical pre-conference training courses on October 18th at the 2016 Qt World Summit in San Francisco. Whether you’re new to Qt or a…

    Blog
  • ICS invites you to visit our new headquarters in Waltham for dinner, drinks, and an evening of What's New in Qt! Justin Noel, Senior Consulting Engineer, will be there to talk about all things Qt and there will be plenty of time for demos, questions, networking and fun! If you have…

    Basic page
  • Intel® RealSense™ technology allows developers to create the next generation of natural, immersive and intuitive applications—including hand and finger tracking, facial analysis, speech recognition, augmented reality and 3D scanning. Traditionally applied to tablets and laptops, RealSense is being…

    Basic page
  • Qt World Summit October 18 - 20, 2016 The Embarcadero San Francisco​, California ICS will be a platinum sponsor at the Qt World Summit, which is returning to San Francisco for its 13th occurrence. Leading technology innovators, industry experts, startups and device creators will share their…

    Basic page
  • Read how ICS leveraged Qt Quick to quickly create this highly stylized user interface Download / View PDF . Watch Justin Noel's presentation from MWC — Barcelona for technical details on how the app was built. Part 1 and Part 2.

    Basic page
  • Thank you for submitting your question or content idea. One of our engineers will be reviewing your input. We are always looking for ways of improving our website content for out users.    

    Basic page
  • Download the entire webinar series. In QML, I have a Text item with wrapMode: Text.Wrap but the text isn't wrapping. What am I doing wrong? You need to set the width of the Text element, either directly using the width: property or by using anchors. Please refer to slide 3 of the presentation…

    Blog
  • Thank you for registering for Qt for Beginners Part 5 - Ask the Experts - On-Demand Video. An email with a link to the on-demand video will be emailed to you. You can also access the video now by clicking here.

    Basic page
  • Click on the links below to watch the videos. Qt for Beginners Part 1 - Overview and Key Concepts - On-Demand Video Qt for Beginners Part 2 - Widgets - On-Demand Video Qt for Beginners Part 3 - QML and Qt Quick - On-Demand Video Qt for Beginners Part 4 - Doing More - On-Demand Video Qt for…

    Basic page
  • Educate Your Team on the Best Practices of Using Squish in Your Environment Accelerate The Use of Squish Within Your QA Team Jumpstart for Squish® is a 5-day service engagement that includes formal training, installation, infrastructure development and test creation by ICS experts. You should…

    Basic page
  • Qt Quick (QML) provides user experience (UX) designers and Qt developers the ability to collaborate and create rich, intuitive and compelling user interfaces for applications – quickly. QML is a collection of technologies that can build modern and fluid interfaces for mobile phones, tablets,…

    Basic page
  • ICS has published 18+ Qt and QML clients for popular Google APIs, making it easy to integrate the functionality your users want into your Qt/QML applications. Whether you need to add access to Google tasks, maps, shopping, calendars or more, we have clients built and ready to plug into your…

    Basic page
  • Download the entire webinar series. What's the best approach for doing webscraping in Qt now that QtWebkit has been deprecated? QtWebEngine is the replacement for QtWebKit and provides similar functionality. Webscraping generally refers to grabbing web pages and extracting content from them, but…

    Blog
  • Thank you for registering for Qt for Beginners Part 4 - Doing More - On-Demand Video An email with a link to the on-demand video will be emailed to you. You can also access the video now by clicking here.

    Basic page
  • DownloadManager.tar - this is an example program used for education purposes only.  Qt for beginners part 4 doing more from ICS

    Basic page
  • Meet Qt May 5.7 2016 - PDF Qt Seminar Half Day - PDF

    Basic page
  • Qt for Beginners Part 3 - QML and Qt Quick from ICSNetwork on Vimeo. Qt for beginners part 3 qml and qt quick from ICS

    Basic page
  • Download the entire webinar series. In the case of designing an application for an embedded platform instead of desktop, are there any differences in the approach? Yes. This is a large topic, but some of the considerations include the need to use a cross-compiler and deploying the code to a…

    Blog
  • Watch the video now. A link to the On-Demand video will aso be emailed to you.  

    Basic page
  • Media Manager Architecture - From Indexing Media to Playing In the first two parts of our blog series, we examined some of the functional requirements of our Media Manager. We also showed a solution for indexing of media. In today’s installment, we explain the core architecture of the media…

    Blog
  • Download the entire webinar series. What is Qt's take on T2S applications? Assuming this refers to TARGET2-Securities, the European securities settlement engine, I don't know of anything relevant in Qt except possibly the Qt Purchasing API which supports In-App Purchases, but could potentially…

    Blog
  • Thank you for taking the time to participate in this survey.  For the latest updates on Qt World Summit, visit www.qtworldsummit.com.  We hope to see you in San Francisco!

    Basic page
  • Watch the On Demand Video - Qt for Beginners Part 1 - Overview and Key Concepts

    Basic page
  • Welcome back! Last time we talked about texturing, lighting and geometry in regards to porting fixed function OpenGL to Modern OpenGL and while it covered the basic features in OpenGL programs, it left out a lot of advanced techniques that your fixed-function code may have used.  In…

    Blog
  • Part 2 Indexing and Tagging Media This is the second in a series of blog posts about media manager components. In the first blog post we discussed the goals and a general architecture for our media manager. In today’s installation, we will show how to address some of the challenges when …

    Blog
  • At ICS we’ve designed and built numerous In-Vehicle-Infotainment (IVI) systems for passenger automobiles, inflight entertainment (IFE) systems for major International airlines, and related control systems for commercial and agricultural vehicles, forklifts, etc. (See the “From Zero to Amazing”…

    Blog
  • Disclaimer: Example code is intended only to express concepts and design patterns, and as such should not be used in a production environment. View the Slides  Example Code - GoogleTestWithQtLab.zip

    Basic page
  • The code referenced in this blog is available here. Texturing Texture setup in modern OpenGL is nearly equivalent to what you are used to in the fixed-function API.  You still have to enable your texture units, create and configure your texture objects (including mipmap chains), upload…

    Blog
  • The code referenced in this blog is available here. In our last blog, we re-implemented the famous OpenGL triangle in world space and compared and contrasted the fixed-function GLUT program with an equivalent Modern OpenGL program.  We covered how to use Qt's math functions to…

    Blog
  • The code referenced in this blog is available here. This is the second of a four part blog series, in which we compare and contrast Fixed-Function OpenGL with Modern OpenGL and introduce you to the issues involved in porting your code to Modern OpenGL. Last time we covered the…

    Blog
  • The code referenced in this blog is available here. In this first of a four part blog series, we outline differences between Fixed-Function OpenGL with Modern OpenGL and show effective solutions for common issues encountered when porting your code to Modern OpenGL. I…

    Blog
  • Qt Test Unit Testing Framework from ICSNetwork on Vimeo.

    Basic page
  • While I missed the recent 2015 Qt World Summit, I have been to and presented at Qt Dev Days for the previous three years running.  Each year, I presented two topics.  The first was related to a recent project or piece of software that we had been working on, including such fun items as an…

    Blog
  • Download the Qml-Runtime-Reload ZIP file Disclaimer: Example code is intended only to express concepts and design patterns, and as such should not be used in a production environment.

    Basic page
  • Download the Source code here.

    Basic page
  • Basic page
  • ICS is excited to be a Platinum Sponsor at the Qt World Summit, the global event for all things Qt. Whether you are a technology director, business decision maker, tech strategist, product manager, engineer or developer there is something here for you. While there check out our booth and…

    Basic page
  • Basic page
  • Basic page
  • Basic page
  • Thank you for submitting a quotation request. Someone at ICS will be in touch with you shortly to discuss your needs. Go back to the form Configure

    Basic page
  • Intel® In-Vehicle Solutions Proof of Concept - ICS High Level Design Document  Connected Technology Demand for connected devices in automobiles is accelerating as mobile ecosystems are maturing. The ability for automakers to differentiate in an increasingly competitive environment…

    Blog
  • Continuing with our series of blog posts on some of the lesser known Qt commands, this time we will look at some tools related to Qt and D-Bus. D-Bus (1) is an inter-process communication (IPC) system that allows multiple concurrently running computer programs to communicate. It…

    Blog
  • Thank you for your request. Please check your email for the downloadable PDFs.

    Basic page
  • ICS and The Qt Company are hosting a Qt Roadshow across North America where key players in the industry will collaborate with technology managers & developers on innovations that change how developers and consumers experience a phenomenal UI/UX and uncompromised performance…

    Basic page
  • Over many years of developing software and building user interfaces, I’ve seen numerous shifts in technology and been present for multiple evolutions in the way developers craft quality software. Yet, while the development tools and languages available to developers make them increasingly capable,…

    Blog
  • Thank you for your time and interest in ICS. Based on your inquiry, we will have the correct person respond directly to you as soon as possible. In the meantime, check out our ICS Insight blog or our Portfolio for some samples of our recent work.

    Basic page
  • Thank you, your submission has been received. You will receive an email confirmation.

    Basic page
  • ICS Helps Ivenix Combine State of the Art Information Technology and Simplicity with an Adaptive Fluid Delivery System One of the biggest challenges in the development of medical device technology is safety. The medical device industry is beset with complex manufacturing, market and regulatory…

    Basic page
  • The Qt Contributors Summit occurred June 10-11 in Berlin. Here is a quick summary of my impressions: 1) Unifying Qt Qt Project is highly interested in unifying Qt Commercial offerings with Qt Open Source. This was a major point made by Lars Knoll in his keynote speech and there were two…

    Blog
  • One of the standard architectures of software systems is to have an application that talks to a server in some form. For example, a Qt application that talks to an Apache-based server with a REST interface. We see this with many of the applications we write for customers. The code in this blog…

    Blog
  • Introduction When I first started using Qt in 2005, one of the classes that I found the most interesting was QDataStream. It was similar to something I had written many years earlier for standard C++ that performed a similar function but with iostreams. I wanted to cover enough aspects of this…

    Blog
  • Written by Alan Ezust and Paul Ezust Foreword by Lars Knoll C++ is taught "the Qt Way". The source documents for our book are in a format that can be used to generate a textbook or instructor's slides. The book includes enough homework assignments and lectures for a 6 credit (full year) course.…

    Basic page
  • This week we kicked off the PhoneGap for Qt 5 project. The goal of the project is to develop a complete version of the PhoneGap open source mobile development framework for the Qt 5 platform. This is going to be an exciting project and we hope it will help accelerate the…

    Blog
  • This week was a little slow as some people were away for the holidays. The new callback-qtimplementation by Viras got committed to github and we are now working with that version. Much of the week has been spent building Qt5. The source code for Qt5 is huge - several gigabytes. It takes…

    Blog
  • This week was another slow week as many people were off part of the week due to New Year's or extended holidays. PhoneGap, recently renamed to Apache Callback, is now being renamed as Apache Cordova. There is discussion on the mailing list about where the code repositories will reside. It may…

    Blog
  • This week we did some marketing to promote the project. I made a posting to the callback developer mailing list and we put a link to this blog from the ICS web site. Quim Gil of Nokia kindly made a posting to the Nokia Qt blog. I also recorded a podcast with Mark Hatch…

    Blog
  • There was no blog posting last week because I was away for some vacation in a warm place. This week work continued implementing the APIs for Accelerometer and Notification and using the Qt Simulator for testing. We also started looking at the new APIs needed to use WebKit2 from Qt 5. With Qt 5…

    Blog
  • This week we finished implementing some Cordova APIs (at least for the Qt 4 version). Compass and Accelerometer are done and some of Events was implemented. Notification is done as is most of File support and we are starting work on Contacts and Camera.Note that I am going to start consistently…

    Blog
  • This week we switched to the new repository. Some pull requests from the old repository had to be resubmitted. Changes were committed for : Patches to get code to compile with Qt 5 (still backwards compatible with Qt 4) Adding Compass sensor suport Renaming references to Callback or PhoneGap…

    Blog
  • Since the last posting we properly set up deployment of Cordova Qt for MeeGo Harmattan (e.g. the Nokia N9 phone). We also got Qt 5 packages including WebKit built for MeeGo Harmattan and tested it on a Nokia N9. Incidently, a big PR1.2 software update rolled out this week for MeeGo Harmattan phones…

    Blog
  • Throughout this project one thing that has been constantly changing has been the source code repositories, both due to several project names changes and with the move to being run as an Apache project. This last week the old repository at http://github.com/cordova/cordova-qt was removed and…

    Blog
  • In the past week or so we commited some more code for Contacts and Notification. Camera support has been submitted as a pull request. We are doing some testing on Symbian with a Nokia E7 phone  as we haven't done much testing on Symbian up to now. I updated the README.md…

    Blog
  • Work has been slowing down somewhat as Qt 5 has been firming up for release. The Qt 5 alpha came out on April 3rd and we tested our code with it. Work is moving ahead for a Qt 5 beta release and then the 5.0.0 final this summer. Qt 4.8.1 also came out and we tested Cordova Qt with it. A 4.8.2…

    Blog
  • We've recently been running the Cordova tests and making some fixes to get them to run better. We've documented on the Wiki how to run the Cordova tests. See the section "Running Cordova Tests" at this wiki page. We hope to have a demo video up soon showing the tests running on the…

    Blog
  • Bring Your Challenges. We've got the Solution. As the largest independent source of Qt expertise in North America with a global reach, our technical team provides collective knowledge and experience solving tough engineering challenges – providing solutions with Premier Qt Support, …

    Basic page
  • BEDFORD, MA – Sept 10, 2012 — Integrated Computer Solutions, Inc. (ICS), will be exhibiting at DESIGN East next week, Sept 17-20, at the Hynes Convention Center in Boston. Stop by our booth (#503) to see several hands-on Qt applications that will be coming soon to a gym or airplane…

    Basic page