What is Qt Port? - qt

I came accross a website and what is this QTWebKit? and why do we use it and in which envoirment c++/Java or...
https://trac.webkit.org/wiki/QtWebKit#TechnicalArticles

Citing from your own link:
WebKit is an open source web browser engine. [...] QtWebKit is a project aiming at porting this fabulous engine back to Qt.
The Qt port of WebKit currently compiles and runs on Linux (including Maemo and Meego), Windows, Mac OS X and Symbian."
So it's webkit ported to Qt. What Qt is, is described e.g. here.
A simple search also reveals the Qt Webkit documentation.

Citing the site you mentioned:
WebKit is an open source web browser
engine. (...) QtWebKit is a project aiming at porting this fabulous engine back to Qt.
WebKit being an engine focused on implementing web browser's specific tasks (interpreting a web page's source (HTML, CSS), executing Java Script, creating visual representation and others) makes use of some basic services needed to accomplish these tasks. The examples of such services would be displaying an image on the screen or downloading a file over a network. These services must be provided for it to work. In case of Qt port these services are provided by Qt, which is a cross platform C++ framework for creating applications. You can find more information on Qt here.

Related

Using PySide / PyQt for mobile development

I am currently looking at using PySide for mobile app development. I've done a few tutorials for creating desktop applications using Pyside and loving it. I understand PySide/PyQt is a port or mapping for Qt, and is usualy behind a little bit with Qt as developers of PySide/PyQt have to keep up with whatever happens in Qt.
I particularly want to develop for Android, BlackBerry and iOS. I also understand that Qt recently added support for Windows 8, as well as the more recent BlackBerry 10 OS.
My question: How well versed is PySide/PyQt in its current state with cross mobile application development.
Does it achieve mobile development by means of the WebKit component, allowing the use of everyday HTML, CSS and JavaScript?
Would it be a better option to consider PyQt for mobile app development, or PySide?
I think its not realistic to think you can use PySide/PyQt and Python in order to make one application suitable for all those platforms.
First of all the platform you want to develop for should support your programming language (Python) as well as the graphical framework (Qt) in order to make it work. This is mostly achieved by third party developers. If Python runs on your mobile operating system this does not say you can start developing and vice versa.
Mobile development is often done with QML (Qt Modeling Language). This allows you to make really cool and fancy interfaces on many platforms. You can connect it to your own Python code to make a real working application.
At this moment Qt is working on support for mobile devices. Most mobile operating systems like iOS and Windows Phone are not supported yet for the combination Python/Qt and mostly the support for working projects is not really big in comparison to the preferred languages of the operating systems.
Here is a list of mobile OS's which support the combination Python/Qt
Link to projects if there is a good link for a starting points is available
Android: PySide for Android
or if you like to use "webviews" instead of PySide: SL4A
Blackberry 10: BB-py
Meego: Python/Harmattan Project
SailFish OS: Harmattan apps (Meego) run without any problem
For your other questions I have a shorter answer.
The webkit component is intended as a content viewer component. Its not a component for building full HTML 5 apps.
The question which bindings for Qt are better is often asked. What you need to be aware of is that the old version of PyQt did almost the same as PySide. The difference was mainly in the license! However PyQt supports now Qt 5 while PySide doesn't, so make your own choice. I think you can make beautiful apps with both of them.

Qt for Symbian VS. Qt for MeeGo

What is the difference between Qt for Symbian and Qt for MeeGo? I know Qt is a cross-compiling platform. Does this mean that if I use a library from Qt the exact same library works on all devices which support Qt (e.g. Symbian, MeeGo)?
For example:
QtDesktopServices can launch a web browser. Despite the name 'Desktop' is confusing for mobile devices can I launch a web browser on every device which supports Qt? If I look at MeeGo, MeeGo is used for different kind of devices e.g. In-Vehicle, TV, media phone
Is it guaranteed that every device has a web browser on it? I don't think so and that's why I'm asking. If a browser is guaranteed, which browser is it? Which features does it have? I know there is WRT, but a user here stated that WRT has discontinued. So what now?
Do I have to choose between Qt 4.7 and Qt Mobility 1.0?
What leinir said - Qt Mobility is a module that implements common features for mobile devices. Qt's API is the same on all platforms, though there are some platform-specific functions (mainly dealing with low-level stuff).
While the API (the interface) is the same, the implementation of course may be different. I suggest looking at the Qt online documentation - the pages linked under "Platform-specific Development"
According to "Platform notes - Symbian", the Symbian port is not complete and lacks some features (e.g. OpenGL support is "planned for a future release", while printing probably never will be supported). I'm pretty sure that the MeeGo/Maemo version supports OpenGL ES, as I've seen a Qt-based application using it (Stellarium on a Nokia N900).
QtMobility is an extra module for Qt, which provides a bunch of extra functionality which is more esoteric than the other 13 or so Qt modules, but functionality which is really useful when you are building applications the way you suggest.
So no, you don't choose between Qt 4.7 and QtMobility 1.0, because you have to use Qt to be able to use the extra module QtMobility :)
The browser will always be whatever is set up as the default browser on the system. So, no, there is no guarantees - for Windows, for example, you might have people using Firefox, Chrome, Internet Explorer 6 and many others. This is the nature of platform integration, i'm afraid :)

How to use Nokia Qt to launch another mobile application within an application based upon a MIME type?

I am using Qt Nokia for mobile development (I'm currently testing on a Nokia C7) and would like to launch an application from another an application based upon a MIME type.
For example, I might have a file, and I would like to be able to open another application from the original application without specifying the application but using the MIME type of that file. On the other application opening it would load the file and perhaps be given an additional message or payload.
If this sounds a little strange it might help to know that I have come from a J2ME background and would have used the CHAPI API.
I need to use Qt Nokia so that I can build the application for the Symbian or Maemo platform. So far I have only been able to find documentation showing you how to do it under Symbian.
Can I do what I require by using Qt Nokia? I am just not looking the right places?
QDesktop::openUrl may be a good candidate.
This HowTo may be helpful.

Flex/Openlaslzo for RIAs?

I recently stumbled upon flex/openlaszlo (OL). Both seem very useful and I have a few questions about them:
What is needed to deploy flex apps? From what I understand, the flex sdk
is open source, but the other tools
(for development and deployment) are
proprietary.
What is needed to deploy openlaszlo? Is it completely open
source (from development to
deployment), or does it have
development/deployment "gotchas" like
flex?
Specifically, I'd like to use flex or openlaszlo to either augment or
replace an editable table I created
using js, ajax, html, and css. Is this
the type of thing flex/OL can/should
be used for? Are there any drawbacks
or pitfalls to using flex/OL for this
rather than straight js, ajax, html,
css?
Thanks.
Edit: Are there any licensing (use) restrictions on applications built on flex? i.e. applications built on flex can be for only non-commercial use, unless a commercial license is purchased?
The following link has some discussion about openlaszlo and flex, it may help you:
Use the best open source client-side framework for cloud computing
You do not need anything special to deploy Flex apps. Just put the compile app (a SWF file) on any web server. Flex apps can talk to any back-end.
Flex SDK is free, but Flex Builder is not. You can use the free and open source FlashDevelop to write flex apps - it doesn't have drag-n-drop features like flex builder, but it offers code hinting and stuff. I don't know about openlaszlo.
Below is the link providing details of tools/IDEs for developing OpenLazlo applications
http://wiki.openlaszlo.org/Development_Tools
Re: "What is needed to deploy openlaszlo? Is it completely open source (from development to deployment)"
OpenLaszlo is OpenSource, but the typical versions you install come with the main components pre-compiled into a SWF for the SWF run-time. However, you can download the full source code if you wish to look at it and/or compile the core yourself:
Last official released version (4.9.0): http://download.openlaszlo.org/4.9.0/openlaszlo-4.9.0-src.tar.gz
Nightly builds:
http://download.openlaszlo.org/nightly/trunk/ (you will see "source" as an option after you click the link of the version you want)
OpenLaszlo does not require anything else to be deployed but itself, except if your application is compiled to the SWF run-time then the user will need the Adobe Flash player installed in their browser to use it.
I'll answer your last question: the biggest drawback to using Flex is that it requires the client to have the Flash Player plugin installed in their browser. Not that big a deal for most people since Flash Player is over 98% of all computers. With the straight Javascript, AJAX, HTML, CSS approach it should work on all browsers, assuming you wrote it correctly.

What are the Pros/Cons of Flash Builder vs. FlashDevelop?

I want to play around a bit with FLASH for app development. I'm looking for a good IDE for that. Someone suggested Flash Develop.
Flash Builder
Pros
better debugging and profiling
visual designer for MXML
because of Eclipse: support for other languages (eg. with Aptana, PDT...) and usage of plug-ins for the Eclipse Platform with features not shipped with FlexBuilder (code snippets with CFEclipse "Dynamic Snippets", "auto-code" for getter/setters with Monkey scripts...)
support of virtual folders/files (links to external files/folders handled intern by Eclipse, so also working on Windows)
refactoring (renaming of classes, functions, properties with automatic changing of dependencies)
Cons
Commercial license
Big and because of Eclipse problematic with newer Eclipse versions for the FlexBuilder plug-in version (eg. not working with Eclipse Ganymede 3.4.1)
adding and configuring the missing features with Eclipse plug-ins needs time and searching in the Internet (which plug-in? settings etc.)
Code assist only average and sometimes buggy eg. if correct imports are missing ("java.lang.NullPointerException")
missing of a code formatter or automatic get/setters (but there are solutions with other Eclipse plugins like Monkey Scripts, CFeclipse, Flexformatter "FlexPrettyPrintCommand"...)
sometimes a bit sluggish if background tasks in Eclipse are working
no package explorer
AS2 and AS3 only - no Haxe
FlashDevelop
Pros
free and Open Source (developed with C#)
lightweight and snappy
best available Code Assist for ActionScript
supports all flash languages - AS2, AS3, haxe
"auto code" for automatic getter/setter, variables, code for event handlers
code snippets with integrated snippet editor
extendible with plug-ins
support for asdoc comments
package explorer (show classes, symbols from a SWC file)
basic refactoring
multiple source code folders per project
useful plugins : ANT integration, SWC creation, mini map, quick navigate
Cons
only for Windows
no visual designer for MXML
no support of virtual folders/files inside the project
weak refactoring
changing classpaths must be done manually
plug-ins often not working in newer versions and many plug-ins are only rarely updated
limited support for debugging Haxe applications
Common
Pros
projects for full range of flash apps : websites, AIR (desktop, mobile)
debugging of FP/AIR apps with breakpoints and stepping
debugging with watch windows and locals
support for ASDoc comments
automatic adding of imports and organizing of imports
class wizard
SVG/GIT integration
Cons
no editing of graphics or animation (use Flash IDE for that)
Summary
For debugging, visual design of MXML forms : Flash Builder
For coding AS2/AS3/Haxe projects under Windows : FlashDevelop
Major reason to use FlexBuilder: has a real debugger you can set breakpoints and single step and watch/edit variables.
Unless FlashDevelop has .. developed .. don't think it got any of that yet.
BTW - if you are a student/teacher FlexBuilder can be had for free
Flex builder has a design view for MXML so you can build more visually. Flashdevelop on the other hand is free!
I've been using Flash Developer. Trying now FlashDevelop. FlashDevelop is fast and light, and I'm trying to switch just because of that.
I'm using HG + TortoiseHG for source control. I have 2 screens, so having external source control is not a big problem. Also the IDE stays a little cleaner by not having all the little source control icons.
DesignView helps with not having integrated design.
Also, I can debug with FlashDevelop and see the variables. I'm using FD3.2.1.
Along with what was already mentioned, Flex Builder has some nice tools that helps a developer to learn how to create a data enabled Flex application in form of the Data Wizards and also a nice web services introspection tool that automatically creates an ActionScript 3 client for a web service.
I'm using the new Jetbrains IntelliJ 8, and it's great (especially if your used to java developement). Has a lot better XML/JavaScript editors that any other IDE.
The latest version of IntelliJ also has a good flex/javascript debugger.
Here are two objective contrasts between FlashDevelop (with the Flex 3 SDK) and FlexBuilder. First, only FlexBuilder includes AdvancedDataGrid. Second, FlashDevelop has no source control integration.
AdvancedDataGrid is not included in either the free or open source Flex 3 SDKs; if you want it, you have to buy FlexBuilder. (I assume it is probably possible to use it via another SDK if you possess FlexBuilder.)
FlashDevelop doesn't have any source control integration, FlexBuilder possesses the existing, stable source control options for Eclipse. This includes Subclipse for SVN, as well as a lot of other things. As a longtime Visual Studio and Emacs user, in FlashDevelop I'm beginning to feel unsatisfied with leaving the editor to check in.
Flash Builder, even in version 4.5, has primitive, useless syntax coloring and customization features. From a 700$ package I was expecting at least what I can do with my free text editor.
In the syntax coloring preferences, there is a total of 6 keywords, and you cannot add any custom one.
How am I expected to code having variable names, function calls, and classes look exactly the same?
I will stick to Flash Pro CS5.5 and SciTe.

Resources