Qt, QML and Windows 8 [closed] - qt

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I always been curious about QML introduced by Qt framework. But never had a chance to work with it. But now with Windows 8 coming, old school widget based interface is going to get outdated (just my opinion! :) ). Now I want to ask those, who had some experience with QML: Is it easy to write Metro-style (or how is it called nowadays) applications with QML? Is the QML photoshop plugin useable for real project?
For those who don't have a clue about Photoshop plugin, try search in youtube: Introducing Qt Quick for Stunning UI Creation - Nokia Developer Day, Barcelona 2011 (not sure, whether I can post links here :P)
Also, Is there any good Windows applications I can look, written in QML?

is there any good Windows applications I can look, written in QML?
Go through the trending Qml repositories at GitHub to get a good idea. People are implementing material design ideas in QML as well. Correct me if am wrong but lot of Sailfish's UI was done in QML as well. Infact, the SDK for the OS is based on Qt/QML.
I am personally fond of GCompris. They moved from GTK to QML and have been able to run their code on several platforms including Windows/Android/OSX etc.
is it easy to write Metro-style applications with QML?
I would personally say that qml is very capable of developing the fluid 'metro like' UIs in a very intuitive and easy way.
You can go through the links given here to get started on QML.
You can start with the Qt Wiki on it, and go through how to create Metro style applications and read about deploying on Windows 8.
Is the QML photoshop plugin useable for real project?
I havent used the Photoshop one, but the one for GIMP (YES! is exists for GIMP as well, man open source developers do some nice work!!!). Although it might not be very intuitive in its approach to generate files, but it still is a very nice tool to work on single files (screens), when your UI is not expected to change at all.
It gives hard coded values to pixels ( eg: width : 45 ) instead of writing it in a dependent way ( eg. parent.width * .75 ), thus in case there are modifications in UI you might end up modifying a lot.
And personally I would say qml is just awesome to learn and have fun.
And thanks hyde for that link.
Edit:
Also go through these:
A video showing the Metro like effects, written in qml
A video showing the IVI capability of qml. Just so that you can get an idea of what qml might be capable in terms of animations etc.

Related

QtQuick or QtWidget [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
I have an application in the works to display stock market graphs.
I retrieve the courses from the Internet and display them on my application, with a lot of customization, tracking available and potentially live.
I hesitate to do it with Qwidget or QtQuick.
QtQuick is well suited if the window is often resized? I move the sizes of my windows a lot.
I see on one side people say that QtQuick is more for tablet etc and QtWidget is more for pc.
And on the other hand, I've seen a lot of people saying they switch their desktop application from QtWidget to QtQuick either professionally or personally, and they often say they don't want to go back.
My project may take me some time and I would like to take the most optimized one between the two.
I code in python but I would probably translate my code in C++.
I would do the prototype in python and the final version in C++.
QtQuick is really adaptable with python? Loading data, indicators to place on the graph etc. are handled with QtQuick or externally with python/c++ ? I really have a hard time projecting myself with QtQuick even if after all I read about it, I really prefer to start with it.
Basically, I'd like to do something like this.
So, I need to be able to customize the style of my application, I need performance to display the graphs and be able to add indicators/line drawing by hand etc. with good performance.
I would start more easily by doing my project with QtWidget than if I switch to QtQuick, I need to learn the QML from the beginning.
QtQuick seems fine to me but I'm afraid of making a mistake, and I don't want to waste time doing my application with QtQuick if it's not adapted.
My suggestion is Qt Quick.
Because Qt Quick is developed in 2010 after ios and android came out. In my opinion, after that Qt Community began to focus on Qt Quick more than Qt Widget. Most of guiders suggest that Qt Widget is for Desktop apps, Qt Quick is for ios, Android and embedded but you can either use both for all. After I checked your app which is in your link, as a user who used Qt widget and Qt Quick I think you will feel more comfortable yourself by using Qt Quick.
Here is some examples which are available in Qt. You can easily use them when you installed Qt from Examples. These examples are related to your project according to your reference link. Checking out the examples related to your subject will give you a better idea before beginning your project.
Qt Quick:
1- Multiple Graph Example
2- Scene Graph Example
Qt Widget:
1- Diagram Scene Example
2- 400 Chips Example
3- Graphics View Example
Here is also a good video comparing Qt Quick and Qt Widget.
Is QtQuick adaptable with python?
Yes, here is the reference but Qt Widgets projects use C++.
Good Luck!!!

Report generator in Qt using webkit or QML [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
in my Qt application I'd like to output PDF-reports. The reports should be slightly modifiable for a particular customer. My idea was to create PFDs using QPrinter from rendered QWebkit-view. Rendered QML could also work. Looks for me as a very easy was to create PDF-reports with very flexible layout customization (CSS/HTML or QML) and without the need to learn/introduce additional software-package into the project.
Is someone aware of such an implementation already? It should be Open-Source (free or commercial)?
My wish-list is :-)
It should be able to display images preferably provided from
client-application as QImage/QPixmal.
It should be able either to
accept all variables as QMap or query values from a Postgres DB.
It should be either embeddable as code or linked as a library
EDIT
already checked:
QtRPT - pretty experimental and unmature. Many magics, comments in Russian in code.
NCReport - Open-source code is too old, last update 2007. Doesn't compile with Qt4.8.4. New versions are provided under commercial licenses. Commercial version looks very mature, has good documentation (ca. 100p), However I'm looking for a software which renders html/QML, so we could order a HTML-developer for creating/maintaining reports.
I dont think there is something ready made exists, otherwise it would be well known, because an issue itself pretty common. As a previous answer I also wrote my own generator. It's not open source, thought.
Problem is not only in printing (as being mentioned in previous answer). It can be more or less solved as soon as you can split whole report into pages yourself. Then you can render report content with headers/footers/page numbers/etc on 'per page' basis and print them separately.
Main problem is that it's easier up to me (having in mind all options Qt provides) to develop nice report generator for particular software, rather then trying to develop something very generic. In this case you have to either limit yourself on features you can use in the report OR introduce a lot of 'magics', certain assumptions/conventions etc.
You can make some kind of generic code for some cases then your reports all have similar structure (for example - header - first page header - main table section- footer with page numbering and all other pages the same without first page header), and then it's fairly simple to make an algorithm which will nicely split you main table section into pages.. but it's all gone as soon as you start think about more complicated scenarios with graphs etc.
An engine I've done based on JS and operates using basic reports primitives (like table, graph, label) which have some layout properties and actually JS code places them on a final report. Some reports primitives can be automatically splitter between pages some not..
I have made that kind of report generator using QWebKit (Qt version 5.1). It is not open source, though.
The biggest problem is that WebKit (or any browser's layout engine that I tried) does not work very well with printing. CSS standard covers printing, but the layout engines do not implement that stuff, or implement it only partially. So if you want features like headers and footers, page numbers, support for multiple paper sizes and support for both landscape and portrait, you have to do a lot of googling and testing. Almost nothing works as expected, so workarounds need to be invented and ugly hardcoding done.
So you can make a report generator using QWebKit. It's not going to be fun and new versions of Qt and QWebKit will most probably break something. So I would recommend making the report generator a separate application so that you can use different Qt versions for the main application and the report generator. At least design the report generator so, that you can separate it from the main application later if needed.

Qt or wxWidgets [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I'm going to start working on a new project. It's a 3D game using OpenGL for Windows, Linux and Mac OS X. and I'm going to need a library for GUI, windowing and handling input. I ended up with 3 choices Qt, WxWidgets and GTK+. All of them are under LGPL license.
1- Does LGPL allow to use these libraries to make proprietary applications?
2- Which one of these 3 applications is best for me?
Yes, so long as you don't statically link to them (ie: use them as DLLs). Though wxWidgets allows you to statically link without becoming GPL'd.
None of the above. If you are making a 3D game, then none of these is good for your needs. The needs of a GUI for a game are very different from the needs of a GUI for a typical desktop application. In a game, you want you particular GUI elements to be consistent with a particular artistic direction, not be consistent with the desktop environment. Plus, you may want your GUI elements to be more expressive than what these toolkits would normally allow.
It is for reasons like this that CEGUI exists. That is a GUI system designed for the needs of a game.
Also, none of these provide input the way a game generally wants to process it. You typically want something lower level for a game than what these toolkits provide. That's why projects like SDL and SFML exist.
1 - Yes, provided that your project doesn't require alteration of the library itself
2 - I strongly reccommend Qt for new windowed apps, if for no other reason than it has excellent documentation (although there are many other winning points, but it gets subjective quite quickly). GTK and WxWidgets will both make you waste mental energy thinking about things you really shouldn't have to think about. Qt is easier to a) customise, and b) ignore when you don't care about customisation.
Although for 3D stuff you might want to look into full-blown engines like, ooh, Irrlicht or Ogre3D or any of a number of others
WxWidgets uses LGPL which means you can dynamically link to it in your project, without it forcing your project to be GPL or LGPL.
However, I suggest using CEGUI instead of the libraries you suggested, for any game or rendering application
CEGUI uses the MIT license which is less strict than LGPL and also allows you to link to the library dynamically (preferred) or statically, both without forcing you to have a specific license for your own project.
Supports OpenGL 3.2+ Core Profile (OpenGL3 Renderer)
Supports very old OpenGL versions (OpenGL Renderer)
If you want to use Ogre or Irrlicht engine, which can also rely on OpenGL, CEGUI also supports these two renderers via the CEGUIOgreRenderer and CEGUIIrrlichtRenderer
Ssupports Windows, Linux and Mac OS X, just as you want
Because someone asked in the comments: Unicode characters are fully supported so that you can use Hebrew, Arabic, all sort of Asian alphabets, etc, as shown in the current Font Demo - of course you need to install either one of the CEGUI fonts or use another Open Source Font
Was specifically designed for games, simulation and rendering applications
You can skin all elements in the UI (currently only via XML, soon also using an editor)
Provides a powerful editor (CEED) for layout editing with WYSIWYG (!) for free!
Is fully extendable and adaptive via changes in C++ code and/or XML
Powerful Event System
It might take a bit to set CEGUI and its dependencies up and get it to run with your project but it will still pay off on the long run because it has a lot more features than most free solutions for UI. Imagine how annoying it would be if you used an UI library and then found out it does not provide a specific feature you need and that it would be almost impossible to add this - because CEGUI is based on C++ and XML and because of its design, you can always add specific adjustments to CEGUI. So you will most likely not run into limitations even on the long run. Also it already has a lot of features out of the box - more than comparable libraries.

'Traditional Qt' or 'Qt Quick' for a desktop program? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
Nokia has just introduced Qt Quick (build UI declaratively like using CSS/HTML) in the recent beta versions of Qt, check this example page, it can build fancy and modern UI, very cool!
On the opposite, the UI developed by 'traditional Qt' seems to be less fancy (I might be wrong, see disclaimer below).
So my question is, would you use 'Traditional Qt' or 'Qt Quick' for a new desktop program? Why?
My initial thoughts:
'Traditional Qt':
Pros:
The overall technologies used be less, thus simpler, if you use PySide, you only code in Python, don't have to mess with the CSS/JS-like things in Qt Quick;
It's maturer.
Cons:
Building fancy UI seems to be more difficult?
'Qt Quick':
Pros and cons: the other way around.
Edit: Qt Quick has a downside, correct me if I'm wrong, you can't design Qt Quick UI in a WYSIWYG way, right?
Disclaimer: I'm new to Qt, PySide and Python, just recently has started evaluating using these tech to build desktop programs.
ave been messing up with qml for my desktop and i personally found this:
its easier to create animations than in traditional qt/c++/pyqt (i loved the animations :)
I haven't looked through all examples but the code size of qml apps looks smaller than equivalent apps in c++
Problems i have found with qml
has poor qml design support- at the moment custom elements dont show up in qml designer.This is a big pain coz ideally i should get a designer to create my ui and i concentrate on the code. Their qml designer still needs some work
You are expected to learn javascript since its the "recommended" way of scripting in qt. Javascript is NOT easy as you may expect eg learning python took me a few hours but javascript looks superficially similar to c but some of its concepts are different. Also i wonder if i can protect intellectual property in an app written i just javascript and qml.(correct me if am wrong)
native widgets are not available in qml eg it just offers rectangles, etc which you combine to form your own widgets.
This has not stopped me from playing with qml and as it matures, i shall adopt a wait and see attitude. Currently am using qml for part of my ui and c++ for the backend.
You made one mistake: Qt Quick is not available only in a beta version of Qt. It has been part of the official Qt release since 4.7 (although each minor version significantly improved the features offered by Qt Quick).
Although the "normal" Qt UI (with QWidgets and layouts and all) is older, this doesn't necessarily mean Qt Quick is immature. It is part of the release, after all.
One thing you fail to point out in your pro's and cons is performance: "normal" Qt UI's are prebuillt (for the most part, basically), and Qt Quick UI's rely on runtime interpretation of QML and CSS/HTML as you say. This will mostly not impact application speed on a desktop system, but if you run into performance bottleneck because you're making the UI too fancy, don't say I didn't warn you. Although such a bottleneck probably means you should've gone OpenGL from the beginning.
Qt Quick provides an easy way of building a cool UI (that's the selling point anyway) and will allow you to use cooler effects in an easier way than the old stuff.
If you are using Python then you probably are not concerned about performance. Traditional Qt allows for fancy looks, too via QSS. What Qt Quick gives is a way to easily build a UI (even without tooling support that is being introduced in 4.8) and use scripting to make it work.
You can make fancy UIs with tradtional Qt, too, mainly via QSS and deriving existing widgets. Most Qt examples don't focus on this but that doesn't mean it can't be done. It also probably gives a better overall performance, especially if coded in C++.
I would use traditional Qt because I'm more familiar with it. But this is subjective anyway, so I think your question will be closed.
I have not so experience on traditional Qt UI systems. But I can give you my experience on QtQuick:
UI using QML is more simple.
QML enables you to better developing using MVC pattern. It makes View separated from Model. You can load different version of the UI in runtime.
QML enables developing advanced UI.
It is very performant now (using QSceneGraph technology). It is implemented on multiple UI threads! I am not sure that you can make more performant UI using C++ anymore!
UI designers can develop UI simpler than HTML+CSS+Javascript!
You can develop your custom UI element by C++ using specific classes.
QML is based on OpenGL and in free version of Qt you need to notice that.
QML has a specific debugger and profiler. Debugging in UI is so easy.
If you want to develop your app using a standard patten like MVC, QML may be more suitable.
You need to be careful about performance notes.

How should a programmer go about getting started with Flash/Flex/ActionScript? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
What is the shortest path between zero (ie no flash related development software on my computer or information about where to obtain it or get started) to running a "hello world" ActionScript?
I'm hoping for an answer that gives step by step instructions about exactly what software is needed to get started, an example of some "hello world" code, and instructions for compiling and running the code.
I've spent more time than I think should be necessary researching this question and not found much information. Hopefully this question will be found by programmers like me who want to get started with Flash/Flex/ActionScript (After my morning of researching I still don't even know what terminology to use so I'll just throw it all out there).
ActionScript tutorials I've found are focused on programming concepts, ie logic, branching, OOP, etc, and some even have code examples to download, but not a single one I've found explains how to compile and run the code. They all seem to assume you have an IDE standing by but no knowledge of programming, exactly the opposite of the position I'm in.
Here are the most related SO questions I've found:
What is Adobe Flex? Is it just Flash II?
Getting Started with Flex 3 UI ActionScript Programming
https://stackoverflow.com/questions/2123105/how-to-learn-flex
If you're a programmer, go down the Flex route. Flex is completely free to use and you can get a Hello World SWF in no time. You can use the FlexBuilder demo or the freely available but sometimes less helpful FlashDevelop. (Actually I think the only problem with FlashDevelop is it doesn't have a good debugger, or didn't, last time I checked).
That said, I would strongly advise against using Flex, Flash, or any Adobe product really, because in my experience Flex is a horrible API and ActionScript is a horrible language. Flash is still the best platform for RIA just because of its penetration, so if AJAX can't solve your problems by all means learn Flex. Certainly it's not impossible to work with. But Flex is like the Java library re-interpreted by a team of people who took one Java class in high school.
Anyway,
1) Get the FlexBuilder demo from Adobe: http://www.adobe.com/products/flex/flexdownloads/
I'm pretty confident it comes with the Flex SDK.
2) Start a new Flex project.
3) A basic MXML program is already written. Add <mx:Label text="Hello world" /> in the <mx:Application> tag
4) Run->Run YourProjectNameHere
5) Read the horrible Adobe documentation and Flex API reference.
The shortest path from zero to displaying a "Hello World" is probably the Flash IDE. Simply start the program up, enter something in the first keyframe like
trace("Hello World");
on the timeline and then click publish.
Of course you have to pay for the Flash IDE and if your just doing pure programming and not drawing complicated animations then there are free alternatives. The one that I and a few others keep pushing is Haxe. A free opensource language based on AS3 that can then be compiled and target to different platforms including Flash SWF. I use the free program FlashDevelop for coding and which supports Haxe.
An example (taken from the http://haxe.org/doc/start/flash website):
Define/create this class in a file named Test.hx
class Test {
static function main() {
trace("Hello World !");
}
}
Create the file compile.hxml in the same directory with the following content.
-swf9 test.swf
-main Test
Execute the compile.hxml, in FlashDevelop just right click on it, and you are done
That is all there is to it :)
I would recommend you to use FlashDevelop + Flex SDK.
It is free, easy to use and nice for small and big projects.
Simple answer to your question:
I learned everything I needed to know to get started programming in Flash at http://www.gotoandlearn.com
Most of his free 20-minute video tutorials use the Flash IDE, but you can download a free trial that'll work for a month if you are just starting out. The first half or so examples he has are in AS2, so I'd disregard those unless you know you'll have to work on older projects - start with the "Using the Document Class" video. It's funny because he goes from a really shitty coder showing basic examples to a pretty advanced developer with nuanced tutorials. Watch his stuff and you'll get a good sense eventually of how this stuff works in Flash.
Another option that you have available to you is Adobe's "Flex in a Week" series - if you are more into programming and understand OOP concepts then maybe you'd rather not mess around in the Flash IDE. Jump right into Flex, which you can download for free for 60 days (or forever free if you're a student or unemployed) and then watch the videos here, they'll catch you up to speed:
http://www.adobe.com/devnet/flex/videotraining/
Between those two links you should have enough free video training to qualify you to do work in the field. Use what you learn there and practice and you'll be good at it in no time.
Cheers,
myk
This should give a good start on learning this technologies:
Adobe Flash Tutorial
Adobe Flex Video Training
Adobe ActionScript Tutorial
also, I know that adam flater and a friend of his were writing a blog around the time that flex3 was released called 'learning flex from scratch.' It might be a good starting point.
There's a short Hello World tutorial on Senocular's blog, which deals with compiling AS3 code... might be a useful starting-point?
http://www.senocular.com/flash/tutorials/as3withmxmlc/

Resources