LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Rapid Linux GUI Frameworks (https://www.linuxquestions.org/questions/programming-9/rapid-linux-gui-frameworks-941544/)

thund3rstruck 05-01-2012 08:53 AM

Quote:

Originally Posted by Sergei Steshenko (Post 4664709)
I suggest to read http://mail.gnome.org/archives/gtk-l.../msg00016.html thread.

I think that objectively Qt is a better choice - even though I'm using gtk+ in its Perl bindings form - I needed Perl bindings.

Quote:

Originally Posted by dugan (Post 4664903)
It is. It's significantly less verbose than GTK.


Correct me if I'm wrong but in order to use Qt you have to have all the KDE dependencies? Those dependencies are huge and take a long time to download right? I mean I don't use Amarok or K3b anymore because they require all that KDE stuff.

This all reminds me of Java on the desktop. My organization went to .NET specifically because (you can depend on it being on the machine as part of the operating system) and if you have to depend on some sys-admin to ensure the right version of J2EE is installed on all the target machines then you can basically forget it because that's not worth the hassle.

My goal is to ensure that any applications I might develop on the Linux platform will run on the widest range of computers with the least amount of external dependencies. It seems silly that there isn't a standard across all Linux/GNU platforms to at least ship a common set of libraries (or a common UI framework) that is guaranteed to be on the machines.

Of course, there will always be utility distributions like Puppy and such that are special use but those would be special cases.

dugan 05-01-2012 08:54 AM

Quote:

Originally Posted by thund3rstruck (Post 4667575)
Correct me if I'm wrong but in order to use Qt you have to have all the KDE dependencies?

You're wrong. KDE uses Qt. Qt does not use KDE.

One of the things Qt is used for is cross-platform applications. That would obviously not be possible if Qt depends on KDE, because KDE is not cross-platform.

thund3rstruck 05-01-2012 08:57 AM

Quote:

Originally Posted by dugan (Post 4667576)
You're wrong. KDE uses Qt. Qt does not use KDE.

Ah...ok wow. I stand corrected! Ok, I will take a look at Qt then!

Thanks again for the valuable intel!

http://stackoverflow.com/questions/3...hon-vs-tkinter

thund3rstruck 05-01-2012 09:39 AM

Ugh... PyQt4 requires a commercial licensing fee be paid to Nokia for any commercial use application. PyQt4 is out of the question then. Switching gears back to PyGObject....

Sergei Steshenko 05-01-2012 10:07 AM

Quote:

Originally Posted by thund3rstruck (Post 4667612)
Ugh... PyQt4 requires a commercial licensing fee be paid to Nokia for any commercial use application. PyQt4 is out of the question then. Switching gears back to PyGObject....

I think this info is outdated. For a couple of years Qt itself is under LGPL. So, unles PyQt4 developers are Nokia, the developers are quite unlikely to demand payments to Nokia.

thund3rstruck 05-01-2012 10:33 AM

Quote:

Originally Posted by Sergei Steshenko (Post 4667641)
I think this info is outdated. For a couple of years Qt itself is under LGPL. So, unles PyQt4 developers are Nokia, the developers are quite unlikely to demand payments to Nokia.

"Unlike Qt, PyQt v4 is not available under the LGPL. You can purchase the commercial version of PyQt here."
http://www.riverbankcomputing.co.uk/software/pyqt/intro

Perhaps I am reading this wrong?

Sergei Steshenko 05-01-2012 11:01 AM

Quote:

Originally Posted by thund3rstruck (Post 4667678)
"Unlike Qt, PyQt v4 is not available under the LGPL. You can purchase the commercial version of PyQt here."
http://www.riverbankcomputing.co.uk/software/pyqt/intro

Perhaps I am reading this wrong?

OK, you are reading this right.

Anyway, http://www.pyside.org/ :

Quote:

The PySide project provides LGPL-licensed Python bindings for the Qt cross-platform application and UI framework. PySide Qt bindings allow both free open source and proprietary software development and ultimately aim to support all of the platforms as Qt itself.
.

thund3rstruck 05-01-2012 11:32 AM

^^ Nice! Thank you! :hattip:

Sergei Steshenko 05-02-2012 10:03 AM

Quote:

Originally Posted by thund3rstruck (Post 4667729)
^^ Nice! Thank you! :hattip:

Giving that all a second thought - maybe you do not need Python in the first place:
http://doc.qt.nokia.com/4.7-snapshot...roduction.html .

I.e. there is already a JavaScript-like scripting language - QML. I yet have to understand what license it has...

Looks like the license is LGPL: http://doc.qt.nokia.com/4.7-snapshot/qtquick.html ->
http://doc.qt.nokia.com/4.7-snapshot...se-information -> http://doc.qt.nokia.com/4.7-snapshot...cklicense.html :
Quote:

Applications created using Qt Quick are subject to the terms and conditions of the GNU Lesser General Public License as Qt Quick includes dependencies to QtScript and JavaScriptCore which are licensed under the terms of the GNU Library General Public License ("LGPL").

dugan 05-02-2012 11:28 AM

Aren't QML (and Qt Quick) just for the UI? You're still supposed to use C++ for the rest, aren't you?

Sergei Steshenko 05-02-2012 11:48 AM

Quote:

Originally Posted by dugan (Post 4668629)
Aren't QML (and Qt Quick) just for the UI? You're still supposed to use C++ for the rest, aren't you?

No, you can mix and match:

http://doc.qt.nokia.com/4.7-snapshot/qmlevents.html :

Code:

Rectangle {
    id: sprite
    width: 25; height: 25
    x: 50; y: 15

    onXChanged: console.log("x property changed, emitted xChanged signal")
    onYChanged: console.log("y property changed, emitted yChanged signal")
 }

;
Code:

Rectangle {
    id: relay

    signal send( string person, string notice)
    onSend: console.log("Send signal to: " + person + ", " + notice)

    Component.onCompleted: {
        relay.send.connect(sendToPost)
        relay.send.connect(sendToTelegraph)
        relay.send.connect(sendToEmail)
        relay.send("Tom", "Happy Birthday")
    }

    function sendToPost(person, notice) {
        console.log("Sending to post: " + person + ", " + notice)
    }
    function sendToTelegraph(person, notice) {
        console.log("Sending to telegraph: " + person + ", " + notice)
    }
    function sendToEmail(person, notice) {
        console.log("Sending to email: " + person + ", " + notice)
    }
 }

;
http://doc.qt.nokia.com/4.7-snapshot...omponents.html
http://doc.qt.nokia.com/4.7-snapshot/qml-extending.html (using C++ stuff is described here).


All times are GMT -5. The time now is 07:38 AM.