125
I Use This!
Activity Not Available

News

Analyzed about 2 months ago. based on code collected 3 months ago.
Posted about 10 years ago
In this next installment of our blog series on lesser-known Qt commands, we'll look at four tools related to documentation: qdoc, qhelpgenerator, qcollectiongenerator and qhelpconverter. Qdoc Qdoc1 is the tool used to generate the developer ... [More] documentation for the Qt Project. It is not specific to Qt, and can be used to create documentation for other projects or applications. [Less]
Posted about 10 years ago
We’re really getting into the exciting part of the Qt World Summit year as we push ahead on building out the agenda and selecting speakers so that you know well in advance everything you’re going to be able to experience next October. On ... [More] qtworldsummit.com we’ve published the day-by-day agenda at a glance. We want you to have plenty of time to plan your trip to and from Berlin, so we’ve given you the start and end times of all the principal activities for each day. Two days is just not enough to pack in all the great content we have in store for you! Why not join us a day early, on October 5, for one of the focused pre-conference training options? We are thrilled to have Diamond sponsor, KDAB, host the Training Day, showing their strong and continued commitment to the Qt ecosystem especially after their great effort of organizing the previous Qt Developer Days in Europe. With more than 50 to 100 classes a year, KDAB instructors are experienced trainers as well as active developers, with real life experience from projects for KDAB customers. Whether you are new to Qt and already a developer, new to Qt and a manager / decision maker or already a Qt developer there is something here for you. Learn more about course options and which training is right for you here. Tickets will go on sale next week. The post Qt World Summit 2015 | Come early and soak up even more! appeared first on Qt Blog. [Less]
Posted about 10 years ago
You might have heard of our new Qt Canvas3D module that comes with Qt 5.5: Introducing Qt Canvas3D. In this post we will go through the steps needed to port your three.js content to Canvas3D. We will cover how you can create your own Canvas3D project ... [More] with Qt Creator and what are the main things to take into account when porting your code. To make it more exciting, all this will be shown via a well-known three.js example. Creating a Canvas3D project The easiest way to start is to use the QtCanvas3D Application with Three.js wizard with Qt Creator. The wizard template will be included in Qt Creator 3.5 and onwards. If you are using an older version of Qt Creator, you can find the wizard template in the Qt folder under 5.5/Src/qtcanvas3d/creatortemplates folder. The template needs to be copied to the correct location for Qt Creator to detect it. More details about the correct location can be found from Qt Creator documentation: Locating Wizards After you have the wizard template in place you can start the New File or Project wizard. The QtCanvas3D Application with Three.js template can be found under Applications. Just give your project a descriptive name, select the kits used for the project, add it to version control if needed, and finish the wizard. Now you have a basic Canvas3D project created. The project includes a pre-defined set of files to run a Canvas3D application including the three.js. The default implementation draws a cube so that you can verify that everything is working correctly. Porting HTML Content to JS Next we are going to go through the steps needed to port the original HTML content into the created project. As an example we will use the Simple Cloth Simulation from three.js. We will use here a port of three.js on top of Canvas3D. The three.js library and the other JavaScript file needed by the example are added to the resource file automatically if the project was created with the wizard. Otherwise you will need to add the files to the project’s resource (.qrc) file. The QML file created by the wizard has a Canvas3D element that already has the basic methods you will need to initialize, paint, and resize the canvas. The Canvas3D object is passed to these methods as a parameter. We will later show how the buttons to toggle different properties are created and positioned on the QML side. However, first we will go to the JavaScript side to port the actual code from the HTML file in the Simple Cloth Simulation has. Let’s start with the initializeGL() function in our Canvas3D project. Basically this method is the place where you put the code you had in your init() function in HTML. With Canvas3D we don’t use the document object so code related to that can be skipped. Also the code related to stats is something we don’t need here. In the HTML you have used window to get the size. Code related to that should be changed so that the canvas object passed to the function is used. For example, the camera creation in the original example was done like this: camera = new THREE.PerspectiveCamera( 30, window.innerWidth / window.innerHeight, 1, 10000 ); With Canvas3D the camera should be created in the following way: camera = new THREE.PerspectiveCamera( 30, canvas.width / canvas.height, 1, 10000 ); There are some textures used in the example. The texture files need to be added to the project’s resource file. After this they can be loaded using the reference to the resource: var clothTexture = THREE.ImageUtils.loadTexture( 'qrc:/textures/patterns/circuit_pattern.png' ); The original HTML example has some shaders defined with the help of the document. We have created a WebGL Shader Library that basically has the exact same code as the original shaders did. var clothShader = THREE.ShaderLib[ "cloth" ]; var vertexShader = clothShader.vertexShader; var fragmentShader = clothShader.fragmentShader; Last but not least, we replace WebGLRenderer with Canvas3DRenderer in the initializeGL() function. renderer = new THREE.Canvas3DRenderer( { canvas: canvas, antialias: true, devicePixelRatio: canvas.devicePixelRatio }); The JavaScript file has an implementation for the onResizeGL() function. The default implementation there will work fine for Canvas3D projects, but you may want to do some changes based on the HTML files. In the example we ported, the implementation of the template was sufficient. function resizeGL(canvas) { camera.aspect = canvas.width / canvas.height; camera.updateProjectionMatrix(); renderer.setPixelRatio(canvas.devicePixelRatio); renderer.setSize( canvas.width, canvas.height ); } The content of the animate() function you have in HTML can be ported to the paintGL() function with Canvas3D. You no longer need to request animation frame because Canvas3D takes care of that. The full port of the HTML to JavaScript for Simple Cloth Simulation example can be found here: animation-cloth.js. Adding controls to the QML side For the Simple Cloth Simulation example we have added some buttons to the QML to do the toggling. All the buttons are positioned on the top of the window. For example, for toggling the wind we have created a button in the following way: Button { id: windButton anchors.left: cameraButton.right width: parent.width / 4 text: "Toggle Wind" onClicked: GLCode.toggleWind() } The JavaScript code was imported as GLCode for our ported application. The toggleWind() function from JavaScript code is called when the button is pressed. This function has the implementation that was defined in the hyperlink on the original HTML. Another way to do this would be to define custom properties in your QML types, for example on the Canvas3D element. That object is already passed to the JavaScript, so you can just modify the value of the property on button press. In the way we have done the amount of needed porting effort has been reduced by reusing the existing methods from the HTML implementation. The fully ported Simple Cloth Simulation example you can find here: ported animation-cloth example. Mouse and Key Event Handling The example we have covered here doesn’t have any mouse or key event handling. If you need these event handlers you can do it, for example, by adding a ControlEventSource to your Canvas3D type. ControlEventSource offers an API that is compatible to key and mouse event registration in HTML. ControlEventSource { anchors.fill: parent focus: true id: eventSource } This needs to be passed to the JavaScript on initialization: onInitializeGL: { GLCode.initializeGL(canvas3d, eventSource); } Then in the JavaScript initializeGL() function you should connect the desired signals to the corresponding functions. For example, for mouse and key down events the code would look like this: eventSource.mouseDown.connect(onDocumentMouseDown); eventSource.keyDown.connect(onDocumentKeyDown); For the mouse event you will get the position of the pointer. For the key event you get the event and from it you can check which key was pressed using the key names used by Qt (Qt::Key). Try it out There’s a set of three.js examples that we’ve already ported on top of Canvas3D. You can find these examples here: qt-examples. Why not take a look at those and then give a try to port your own code? The post Porting Three.js Code to Canvas3D appeared first on Qt Blog. [Less]
Posted about 10 years ago
Automakers have long strived to make their in-car experiences unique and distinctive: not just in an effort to distinguish themselves from their competitors, but also to distinguish their low-end car models from their luxury models. The low-end to high-end distinction has been important to them for two reasons:
Posted about 10 years ago
In a previous post we have introduced one of the many new features of the upcoming Qt 5.5: the ability to easily integrate image processing and vision algorithms with camera and video streams via Qt Multimedia. It is now time to see the briefly ... [More] mentioned OpenCV-based example in more detail. Qt Quick, Multimedia, and OpenCV on the Nitrogen6X board Nitrogen6X is a single board computer from Boundary Devices based on the well-known Freescale i.MX6 platform. Combined with the 5 megapixel MIPI camera and the 7″ multi-touch display, all of which Qt supports out of the box, it provides an excellent platform for modern user interfaces and multimedia applications. To see it all in its full glory, check out the following video: As always, the application is cross-platform. Below it is seen running on an ordinary Linux PC, with QT_QUICK_CONTROLS_STYLE set to Flat. This allows having the exact same style for the controls as on the actual devices. This previously commercial-only style is now available under LGPLv3 for anyone, on any platform, starting from Qt 5.5. This is excellent news when targeting embedded devices, as those do not have a native look and feel to begin with, and for anyone who is after a consistent, unified experience across desktop, mobile, and embedded platforms. Qt OpenCV demo on the desktop The post Qt 5.5, computer vision, and the Nitrogen6X appeared first on Qt Blog. [Less]
Posted about 10 years ago
The emergence of the Internet of things (IoT) is reshaping our relationship with computing technology, including the interface paradigms that we use to interact with digital technology. Touch has replaced mechanical pointers such as the mouse on ... [More] some classes of devices, notably mobile. Speech recognition is slowly finding appropriate use cases where hands-free interaction is desirable, such as in-vehicle devices. Physical movement is the interaction with wearables that track your activity. [Less]
Posted about 10 years ago
Today we have released Qt 5.4.2, the second patch update to Qt 5.4. In addition to improvements and fixes to Qt functionality it also packs new Qt Creator 3.4.1. Qt 5.4.2 provides important security fixes for Qt WebEngine WeakDH vulnerability ... [More] (CVE-2015-4000), DoS vulnerability in the BMP image handler (CVE-2015-0295) as well as security fixes for vulnerabilities in image handling of BMP (CVE-2015-1858), ICO (CVE-2015-1859) and GIF (CVE-2015-1860). Qt 5.4.2 also contains updates to the libpng (to version 1.6.17), the libtiff (to version 4.0.3) and the PCRE library (to version r1530) 3rd party components. These provide fixes to known vulnerabilities and provide general  improvements. Qt 5.4.2 maintains backward compatibility, both source and binary, with Qt 5.4.1 – but not to Qt 5.4.0, which unfortunately broke binary compatibility on Windows when using MSVC 2012 or MSVC 2013. This binary compatibility break was fixed in Qt 5.4.1, thus Qt 5.4.2 maintains full compatibility with the Qt 5 series (except for Qt 5.4.0). The full list of important changes can be found from the change files for each module. The standalone packages of Qt 5.4.2 also include new Qt Creator 3.4.1. See the blog post about Qt Creator 3.4.1 for the main improvements. Today we have also released a new version 1.3 of the Qt Virtual Keyboard adding support to Japanese and Korean languages, for more info about it please check the Qt Virtual Keyboard 1.3 release blog post. If you are using online installer, Qt 5.4.2 can be updated using the maintenance tool. Offline packages are found from the Qt Account (for commercial users) and from the qt.io download page (for open-source users). The post Qt 5.4.2 Released appeared first on Qt Blog. [Less]
Posted about 10 years ago
Today, we have released a new version 1.3 of the Qt Virtual Keyboard. As new features, we are adding support for Japanese and Korean along with support for Windows desktop. A big use case over the years for Qt has been in creating embedded devices ... [More] with an interactive use interface. More and more embedded and industrial devices are moving towards touch screens as their primary interface. As external input devices are no longer used, the device creator often needs to leverage virtual keyboard for text input. Although a virtual keyboard may seem like a trivial UI component, it is actually quite complex. When you think about modern keyboards, input mechanisms, customization, scalability and especially requirements around internationalization & localization, a virtual keyboard can easily become a very complex challenge that could hinder the whole usability of your device if not made properly. Focus of Qt is to shorten the time-to-market on all aspects of development workflow, so over the past years, we have developed the Qt Virtual Keyboard to provide a full ready-made solution for Qt powered devices. Besides just touch-based screens it also expands to other input mechanisms, like 2/5-navigation (joystick/scrollwheel). The Qt Virtual Keyboard is available with a commercial Enterprise license at no additional cost. Using the Qt Virtual Keyboard in your Qt based devices is easy and we are continuously making sure it works nicely with the new releases of Qt. Key features of the Qt Virtual Keyboard include: Customizable keyboard layouts and styles with dynamic switching Predictive text input with word selection list support Character preview and alternative character view Automatic capitalization and space insertion Scalability to different resolutions Support for different character sets (Latin, Simplified Chinese, Hindi, Japanese, Arabic, Korean, …) Support for most common input languages (see list below), with possibility to easily extend the language support Left-to-right and right-to-left input Hardware key support for 2-way and 5-way navigation Sound feedback Cross-platform functionality The Qt Virtual Keyboard version 1.3 supports the following languages: Arabic Chinese (Simplified) Danish English Finnish French German Hindi Italian Japanese (Hiragana, Katakana, and Kanji) Korean Norwegian Persian/Farsi Polish Portugese Russian Spanish Swedish If the language you need is not supported, you can add an additional language (see documentation for Adding New Keyboard Layouts). To see more about Qt Virtual Keyboard, check out the documentation or watch the video about the core features of the Qt Virtual Keyboard: The new Virtual Keyboard 1.3 is available for device creation customers who have a commercial Enterprise license via the online installer as well as from the Qt Account. If you are not a customer yet, you can evaluate Qt for Device Creation with our free 30 day trial. The post Qt Virtual Keyboard 1.3 Released – Adding Japanese and Korean Language Support appeared first on Qt Blog. [Less]
Posted about 10 years ago
We are happy to announce the release of Qt Creator 3.4.1. It includes fixes for the following regressions: manually registered documentation on Windows was deregistered again on restart, and disabling plugins could disable most of the About Plugins ... [More] dialog. You find a more complete list of fixes in our change log. You find the opensource version on the Qt download page, and Enterprise packages on the Qt Account Portal. Please post issues in our bug tracker. You also can find us on IRC on #qt-creator on irc.freenode.net, and on the Qt Creator mailing list. The post Qt Creator 3.4.1 released appeared first on Qt Blog. [Less]
Posted about 10 years ago
We’re happy to release Qt Installer Framework 2.0.1. 2.0.1 is a bug fix release that mostly fixes stability issues with elevated installations. But other issues in the code and documentation have been fixed too. See the ChangeLog for more details. ... [More] Sources and precompiled binaries for the Installer Framework are available at download.qt.io (open source), or in your Qt Account. The binaries are built with Qt 5.4.2 – if you compile from sources you should consider using Qt 5.4.2, too. The latest documentation can also be found online. The post Qt Installer Framework 2.0.1 Released appeared first on Qt Blog. [Less]