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
Resizing a docked window isn’t always as simple as it may seem. Docked windows often change height and width as well as their docked location. The control or widget can also be more complex, not resizing with a simple MouseDrag used with non-docked ... [More] windows. The example below illustrates how to resize a docked window when working with the Qt Widget QDockWidget: # About Example # Supply specific QDockWidget's symbolic or real name # (in this sample application QDockWidget is ColorSwatch) # change_* functions take three parameters: QDockWidget # as o, resize value as xdiff, snooze in seconds # (optional) as snoozeFactor def main(): startApplication("mainwindow") dockToResize = waitForObject(":Qt Main Window Demo.White Dock Widget [*]_ColorSwatch") change_height_on_top(dockToResize, -20) change_height_on_top(dockToResize, 20) change_height_on_bottom(dockToResize, -20) change_height_on_bottom(dockToResize, 20) change_width_on_left(dockToResize, -20) change_width_on_left(dockToResize, 20) change_width_on_right(dockToResize, 20) change_width_on_right(dockToResize, -20) def change_height_on_top(o, xdiff, snoozeFactor = 0): snooze(snoozeFactor) mousePress(o, 50, -2, MouseButton.LeftButton) start = 0 end = xdiff step = 1 if xdiff < 0: step = -1 for i in range(start, end, step): mouseMove(o, 50, -2 + i) mouseRelease() snooze(snoozeFactor) def change_height_on_bottom(o, xdiff, snoozeFactor = 0): snooze(snoozeFactor) mousePress(o, 50, o.height + 2, MouseButton.LeftButton) start = 0 end = xdiff step = 1 if xdiff < 0: step = -1 for i in range(start, end, step): mouseMove(o, 50, o.height + 2 + i) mouseRelease() snooze(snoozeFactor) def change_width_on_left(o, xdiff, snoozeFactor = 0): snooze(snoozeFactor) mousePress(o, -3, 50, MouseButton.LeftButton) start = 0 end = xdiff step = 1 if xdiff < 0: step = -1 for i in range(start, end, step): mouseMove(o, -3 + i, 50) mouseRelease() snooze(snoozeFactor) def change_width_on_right(o, xdiff, snoozeFactor = 0): snooze(snoozeFactor) mousePress(o, o.width + 3, 50, MouseButton.LeftButton) start = 0 end = xdiff step = 1 if xdiff < 0: step = -1 for i in range(start, end, step): mouseMove(o, o.width + 3 + i, 50) mouseRelease() snooze(snoozeFactor) For more information, and a more extensive example, see Article – Resizing Docked Windows (QDockWidget) [Less]
Posted about 10 years ago
Today, I am really happy to celebrate Qt’s 20th anniversary. On May 20, 1995, the first Qt version, 0.90, was released! I am really glad to have been part of the Qt journey since 1997, when I first got in touch with Qt through the KDE project. Qt ... [More] immediately fascinated me. It not only made development of applications a lot easier than anything I’d seen before, but it was actually fun to develop with. So I started doing quite a bit of work where I used Qt within the KDE project. In the spring of 2000, I got so lucky to be offered a position at Trolltech. I joined the company a few months later and moved to Norway. Working with the founders of Qt, Eirik Chambe-Eng & Haavard Nord, as well as the other people we had in the company at that time was an amazing experience. Over the next few years, Trolltech grew from around 15 to 250 people. We developed new versions of Qt, worked on a mobile phone stack called Qtopia, and also started to extend Qt from being a toolkit to develop UIs to a much more comprehensive development framework, including all required tools. From the beginning, Qt has been released with both open source and commercial licensing options. Over the years, we have worked on expanding this model, and nowadays, Qt is actually developed as an open source project. In this sense Qt is actually in a rather unique position, having a strong ecosystem with passionate people, as well as a commercial entity behind it, which backs up and funds most of the development. The last 20 years have been an exciting ride for Qt. I’ve had the pleasure to be part of most of these, and I have had the great opportunity to work with the many passionate and driven people all with the common goal to make Qt a leading technology. I am pleased to know that some of the world’s most innovative companies we know today have built their product with Qt. Thanks to all the amazing colleagues at Trolltech, Nokia, Digia and The Qt Company who have believed in our technology and have put their best efforts forward to make Qt the best cross-platform software development framework. To our community of engaged contributors, developers and Qt fans, we wouldn’t be around without you. I am grateful for your passion, your will to spread Qt everywhere, and your selfless drive to develop Qt together with us. A big special thanks to our partners and ecosystem comrades who have been with Qt since the beginning. Thanks to you for sticking with us and for guiding us through the ups and downs. Qt was created by developers for developers. Making developers’ lives easier was the reason for its birth and what Eirik and Haavard wanted to provide to the development world. This goal has not changed and throughout Qt’s history it has remained at the core. Code less. Create more. Deploy everywhere. Please join me in wishing Qt a wonderful anniversary and a big congratulations to the Qt ecosystem! Here’s to 20 more years! The post Happy 20th Anniversary Qt! appeared first on Qt Blog. [Less]
Posted about 10 years ago
It is time to submit all those talks you have been thinking about! We are looking for compelling content from Qt users, customers, partners and industry analysts. Introductory talks are great when the audience is new to a subject, but beware of ... [More] providing sessions that are too basic when the technology has been around for a while and there are lots of tutorials already available on the web. Also, there will be dedicated business tracks where participants are looking forward to learning how industry leaders like yourself have used Qt to create their future-proof products. Approved speakers will receive the following benefits: As a speaker, you get free access to Qt World Summit. It’s a great opportunity to spread your mindshare and have a community of industry leaders and important software developers hear your message. Exposure to thousands of developers from leading enterprises across the world. We are filming the presentations, so talking at the Qt World Summit will give you an audience much wider than just the crowd in Berlin. We will share your contact and professional details on the Qt World Summit web pages, giving you a large platform to network with anyone interested in your expertise or offering. For details about the conference themes and call for papers guidelines , visit the website. The Qt World Summit Call for Papers is closing on May 22, 2015. Thinking about becoming a Qt World Summit sponsor? Please contact us. Thank you in advance for your contribution to Qt World Summit. We look forward to seeing you there!   The post You’ll Kick Yourself if You Miss the Qt World Summit Call for Papers appeared first on Qt Blog. [Less]
Posted about 10 years ago
Google I/O is a happening event. You may or may have not snatched a ticket. Whatever the case, join The Qt Company for a pre-Google I/O Happy Hour. Mix & mingle with our Qt engineers and experts, and learn more about Qt and how you can use it to ... [More] power your next desktop, embedded & mobile project. We will be more than happy to shed some light on Qt development for Android (as well as other operating systems) in a relaxed and fun setting. Grab some hors d’oeuvre & some beer on us. Join us at Qt’s Happy Hour! May 27, 2015 6-8 p.m Where: Jillian’s San Francisco Metreon, 175 4th St San Francisco, CA 94103 – That’s across from the San Francisco Moscone Center Hope to see you there! Register now The post Google I/O Countdown with Qt Happy Hour appeared first on Qt Blog. [Less]
Posted about 10 years ago
Posted about 10 years ago
If you are not yet honing your design skills for the Internet of Things (IoT), I’m about to light your fire. I don’t generally buy into technology hype. As designers, we tend to remain calmly skeptical about incitements coming from our business ... [More] and marketing departments. However, the predicted growth and market penetration of smart devices is frankly staggering. I can only imagine that user experience (UX) design skills for smart devices will be in huge demand. [Less]
Posted about 10 years ago
Time to get working on the Qt Wiki. This week is Wiki Week, the time to clean up the wiki. The Wiki Week wiki page  has a list of things to get started with. Cleaning up much viewed pages is a good place to start. If you have some other activities ... [More] you think would benefit the Qt Wiki, please post them on the Wiki subforum on the Qt Forum. I’ll be following the Wiki and the Forum, and you can find me as tekojo on the main Qt IRC channels (qt, qt-labs, qt-chat) on Freenode during the day (European time). Let’s see how much we can get done on the wiki this week! The post Wiki Week is here appeared first on Qt Blog. [Less]
Posted about 10 years ago
Posted about 10 years ago
Unfortunately, with all the normal magic of QML property bindings, getting a property updated in a setup that involves return values from functions isn’t really doable, like this: Text { text: qtobject.calculatedValue() } I’m told there is a low ... [More] priority feature request for a way of signalling that a function now returns a different value and all properties using it should be reevaluated. I have so far discovered two different workarounds for that that I will be presenting here. Using an extra property Appending an extra property to trigger the reevaluation of the function is one way of doing it. Text { text: qtobject.calculatedValue() + qtobject.emptyNotifierThing } with the following on the C++ side: Q_PROPERTY(QString emptyNotifierThing READ emptyString NOTIFY valueChanged) QString emptyString() const { return QString(); } This is a bit more code to write and to remember to use, but it does get the job done. Intermediate layer Another way is to inject an intermediate layer, an extra object, that has the function. It can even be simplified by having a pointer to itself. Text { text: qtobject.dataAccess.calculatedValue() } with the following on the C++ side: Q_PROPERTY(QObject* dataAccess READ dataAccess NOTIFY valueChanged) QObject* dataAccess() { return this; } It seems a bit simpler for the reader on the QML side, but also gets the job done. I am not sure which way is the best one, but the intermediate layer has a nicer feeling to it when more complicated types are involved. [Less]
Posted about 10 years ago
It’s my pleasure to announce the release of the Qt 5.5 Beta today. Since we released Qt 5.4, a lot of effort has been put into fixing bugs reported both by our customers and the community. With this in focus, we went through a couple weeks of ... [More] dedicated bug fixing here at The Qt Company. During this time, we worked 100% on fixing as many open issues as possible. Although the focus of Qt 5.5 has been on stability and performance, it also has some interesting new features and functionality to offer. 3D and OpenGL Features While Qt has had OpenGL integration and support for many years, the integration was mainly about low level enablers and classes. With Qt 5.5, we are now adding two new modules, that greatly extend our set of 3D APIs: Qt Canvas 3D and Qt 3D. The first module that makes using 3D easier in Qt is Qt Canvas3D. The module first appeared as a Technology Preview in Qt 5.4, but is now fully supported in Qt 5.5. It provides a WebGL-like API that can be easily implemented using Qt Quick, which greatly simplifies 3D content integration. WebGL itself is a low level API, but Qt Canvas3D can be used in conjunction with JavaScript frameworks such as three.js making loading and displaying 3D content trivial. Another major new feature, available as a Technology Preview, is the new Qt 3D module. Qt 3D is a module that existed during Qt 4 times, but was never added to Qt 5…yet. Thanks to our partner KDAB, it has now undergone a major refactoring and is an even better solution than the Qt 4 version. Qt 3D takes our 3D support a good step upwards making it a lot easier to use and integrate 3D content into Qt applications. The module provides both C++ and QML APIs. For more details what Qt 3D 2.0 brings, you can check Qt 3D documentation and KDAB’s series of blogs. Being a Technology Preview, the module still has some rough edges. Please let us know what you think, so that we can turn Qt 3D into a fully supported part of Qt with Qt 5.6. Qt Quick and Multimedia related news A good amount of work has gone into improving the QML engine, which is the basis for Qt Quick. Apart from many bug fixes and performance improvements, it now supports JavaScript typed arrays and a new method to interface with your own value based classes. Enterprise Controls have been folded into the base Qt Quick Controls and are also made available in the Community version. We also added a TreeView control to complete the set of controls required for building desktop applications. A lot of work has also been put into Qt Multimedia. On Linux, we now use gstreamer 1.0 as the default backend and lots of bugs have been fixed for the other platforms. The new Video filtering framework is a great new feature that allows the integration of frameworks, such as OpenCL or CUDA with VideoOutput elements. Qt WebEngine and WebView Qt WebEngine has been updated to Chromium version 40 and has received new APIs for managing downloading of files, controlling cache and cookies, as well as settings. Support for Qt WebChannel is now built-in and many experimental APIs are now public and fully supported. The Qt WebView module has some new APIs and now also supports Mac OS X in addition to Android and iOS. Qt Location Qt Location is another module that has made its way from Qt 4 to Qt 5 as a Technology Preview. Your feedback on this will be important to make this module an integral part of the Qt 5.6 release. Qt Location adds mapping, geocoding, routing and places support to Qt. In conjunction with the existing Qt Positioning API, it should give you all you need to create location aware applications. Qt Location can make use of different mapping providers, such as Nokia Here, Mapbox and Openstreetmap currently. Other Improvements Many other things have been improved with Qt 5.5, you can find description of all the new features on our wiki. For example, we now support more platforms for Bluetooth LE and there is a new SSL backend based on Secure Transport for Mac OS X and iOS. We have also updated the supported platform and compiler configurations. On Linux we are now supporting RedHat Enterprise Linux better than before, and the binaries can also be directly used on RHEL as well as many other Linux distributions. For Mac users OS X versions 10.8, 10.9 and 10.10 are supported by Qt 5.5. We are not yet officially supporting Windows 10, as it has not been released, but we have been using the pre-releases in development and will add support to Windows 10 with Qt 5.5.x patch release after it is available. Deprecated Modules With all these new features coming, some older ones are being deprecated, namely Qt WebKit, Qt Script, and Qt Declarative (Qt Quick 1). All of these modules are still available with Qt 5.5, but we strongly recommend using their replacements for any new functionality: Qt WebEngine, Qt Quick, and Qt QML, which also provides a fully compliant JavaScript engine. While there are still some smaller feature gaps in a few places between these modules, we believe that the replacements are now better than the deprecated modules. We will of course continue to improve the new modules and will try to fill any remaining feature gaps from the old ones. You can download the Qt 5.5 Beta from your Qt Account portal or via download.qt.io. Please try them out and report back to us any issues you might find, so that we can make Qt 5.5 as awesome as possible. The post Qt 5.5 Beta Released appeared first on Qt Blog. [Less]