Cross-platform software libraries and APIs
Qt Creator IDE and productivity tools
UI Design tool for UI composition
Usage intelligence for embedded devices
GUI test automation
Code coverage analysis
Test results management and analysis
Software static code analysis
Software architecture verification
The latest version of Qt.
Make the most of Qt tools, with options for commercial licensing, subscriptions, or open-source.
Explore Qt features, the Framework essentials, modules, tools & add-ons.
The project offers PySide6 - the official Python bindings that enhance Python applications.
Qt empowers productivity across the entire product development lifecycle, from UI design and software development to quality assurance and deployment. Find the solution that best suits your needs.
Insight into the evolution and importance of user-centric trends and strategies.
Learn how to shorten development times, improve user experience, and deploy anywhere.
Tips on efficient development, software architecture, and boosting team happiness.
Get the latest resources, check out upcoming events, and see who’s innovating with Qt.
Whether you're a beginner or a seasoned Qt pro, we have all the help and support you need to succeed.
May 18, 2018 by Andrew O'Doherty | Comments
It has been a while since our last KNX development blog post, so we would like to give you a quick glance into some of the updates in QtKNX that are coming with the 5.11 release.
One of the main improvements in this update was making Qt KNX's object introspection and construction more intuitive. To deal with the high number of specializations needed for the KNXnet/IP frame, we've included the proxy pattern. For example, the information carried by a KNXnet/IP connection request frame can be accessed by the QKnxNetIpConnectRequestProxy class.
Here is an example of how to use it while implementing the KNXnet/IP server side receiving a connection request frame:
QKnxNetIpFrame frame = //...;
QKnxNetIpConnectRequestProxy request(frame);
if (!request.isValid())
return;
auto ctrlEndpoint = request.controlEndpoint();
auto dataEndpoint = request.dataEndpoint();
auto cri = request.requestInformation();
Because the frame is a structure that has many fields, having to know the exact order of parameters that can be passed to the constructor makes it difficult to use correctly. To make this easier, we have introduced the builder pattern. It allows us to encapsulate the construction and thus provide a more flexible solution.
Here is an example demonstrating the benefits of using the QKnxNetIpConnectRequestProxy::builder() instead of the constructor call to the QKnxNetIpConnectRequestProxy:
auto frame = QKnxNetIpConnectRequestProxy::builder()
.setControlEndpoint(hpai)
.setDataEndpoint(hpai)
.create();
The proxy and builder patterns have been included in most of the QtKNX classes.
Another interesting functionality that we will now support is the ability to extract information from an ETS KNX project file, specifically the group addresses and its associated data point types (DPT). For those not so familiarized with the KNX world, ETS stands for Engineering Tool Software, it's a tool for the design and the commissioning of KNX installations.
Here is an example of how to use the functionality and request the parsing of an ETS KNX project file:
QKnxGroupAddressInfos infos(projFilePath);
infos.parse();
After that we check if there were any errors found through the parsing process:
if (infos.status() != QKnxGroupAddressInfos::Status::NoError)
return;
Finally, we can extract the information that was parsed:
for (const auto &projId: infos.projectIds()) {
auto installations = infos.installations(projId);
// ...
for (const QString &installation: installations) {
for (const QKnxGroupAddressInfo &addInfo: groupAddresses) {
if (!addInfo.isValid())
return;
//...
}
}
}
We’ve also made important improvements on the documentation and many other updates. We encourage you to check it all out in the coming QtKNX 5.11 release. We look forward to your feedback!
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
Oct 8, 2024
We are thrilled to announce the release of Qt 6.8, packed with support for..
Sep 16, 2024
Are you looking to optimize your Qt applications for better performance..
Sep 11, 2024
Embrace the concept of faster and smaller binaries to elevate your..
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.