Comparison of Gui Development Tools for Linux

Comparison of GUI development tools for linux

Qt is your best bet.

  1. The Qt license states

    Nokia grants Licensee a non-exclusive,
    royalty-free right to reproduce and
    distribute the object code form of
    Redistributables for execution on the
    specified Platforms.

    So you should have no problem about license

  2. It's written in/for C++

  3. It's not so hard to learn
  4. The library (althought modular) contains everything you need to develop a full-blown GUI and also some extra (XML, networking...)
  5. I don't know about this, sorry, but I don't think there are any dependencies (on the client side)
  6. The look and feel is native to the enviroment for which the application is compiled (that is Windows look&feel on Windows, OSX look&feel on OSX)
  7. Qt is supported on a vast range of desktop enviroments

Best Visual-Studio Like tool for Linux Development

Since you have already discarded MonoDevelop the next thing that comes to my mind is: Netbeans it has a very nice GUI builder

alt text http://www.netbeans.org/images/v6/7/screenshots/swing-gui-builder-cut.png

The l&f for linux is quite accurate for most apps. Java Swing it in it self a bit harder to grasp than other programming toolkis though.

EDIT

MonoDevelop has:

GTK# Visual Designer

Easily build GTK# applications

alt text

(source: monodevelop.com)

I don't think you cant get any closer to VS than that.

Does any GUI diff tool for Linux provides familiar to GitHub layout of differences?

If you call :

git difftool -d

to invoke your graphical diff viewer, it will open in a "directory diff" mode.

meld for example presents you with an overview of all different files, and you can view the differences for each individual file by double clicking.

Is Solaris or Linux the better C GUI development environment?

This is an opinion so I'm marking it Community Wiki.

Solaris' days are past. That's it, really, that's all I wanted to say, thanks for listening.

Oh, and by the way, so is AIX and HP-UX. Linux is the present and the future (at least for a while) - that's where you should be putting your effort. That's where you'll get the best bang per buck for your support dollars. That's where you'll get hordes of opinionated clowns like myself willing to give you help at the drop of a hat.

Developing a programme with GUI

First, use the installed version of a toolkit on your system. Recent Linux distributions should have a Qt4.8 or Qt5.0 and a GTK3.6 or later (GTK3.8 has been released recently). Don't use GTK2.

I am focusing here on coding GUIs in C++ (in particular on Linux)

AFAIK, WxWidgets is a very clever wrapper above many other toolkits include Windows, Qt, Gtk, ... I am not sure to recommend it, unless you want portability and using system native toolkits. Tcl/Tk is tied to the Tcl scripting language.

There is also FOX toolkit and FLTK (both are C++ GUI toolkits), but they are not widely used.

Qt is related to and used by KDE. Gtk is related to and used by Gnome. But you can run a program using Qt on Gnome, or a program using GTK on KDE.

GTK is written in C, using its own object oriented machinery. If you want to code for GTK in idiomatic C++ consider using GTKMM (a C++ wrapper above GTK).

Both Qt and GTK are very powerful toolkits. However, Qt give you a very powerful Graphics View framework (which Gtk don't have yet). That framework gives you the ability to put nested graphical items together, each having its own coordinates. In contrast, GTK provides a very powerful Text View mechanism, where you can mix widgets and formatted text. IMHO, GTK text view is slightly better than QTextEdit.

For portable games you might consider also SDL. For 3D scenes you may want to use the low level OpenGL which is wrapped by both GTK and Qt.

These days you could also want a web interface. Wt could be useful (it has a programming style similar to Qt). And FastCGI protocol might be relevant. There are several libraries to embed an HTTP server inside your program, e.g. libonion or libmicrohttpd

On Linux and Unix systems (but not MacOSX which has Quartz) you should understand the concepts behind X11, even if it might become replaced by Wayland.

How does the GUI testing tool PyUseCase compare to Dogtail?

Firstly: I'm the author of PyUseCase and I haven't done more than play around with Dogtail...

The tools are different in a number of respects.

  • Dogtail works via the accessibility interface under Gnome on Linux, while PyUseCase operates via GUI toolkits (PyGTK, Tkinter, SWT/Eclipse in the current release, plus Swing from the soon-forthcoming new release)

  • PyUseCase tries very hard to be usable by non-programmers. UI actions are defined in a user-defined domain language, assertions are replaced by generating and comparing plain text descriptions. It also contains a recorder.

    Dogtail is a more traditional "write Python code, call APIs, assert things about what you get back" paradigm, likely a more familiar way to do things if you're used to programming and unit testing.

  • PyUseCase tries hard to make it very easy to change the tests en masse when the GUI changes. The testing code is super-maintainable, because there isn't any :) You get a "UI map file" instead which is just definitions.

  • Lastly, I'm not sure how active Dogtail is. Last time I looked it seems the last commit was in 2009, but appearances can deceive... If you want something like Dogtail, I'd suggest taking a look at the Linux Desktop Testing Project (LDTP) which is a pretty similar concept but seems a good bit more active.

    PyUseCase is in any case active, to the tune of two of us working on it full time. It works pretty well on our real GUIs, but its maturity varies between the different toolkits.

Need a UI tool to compare 2 linux folders from a windows server

Beyond Compare for Windows supports comparison of two Linux servers.

Beyond Compare Standard for Windows can access Linux servers by FTP or as a network drive if the Linux server paths are shared using Samba.

Beyond Compare Pro for Windows adds the ability to access Linux servers by FTPS and SFTP.

Supported comparison types are listed in Beyond Compare's Feature List.

What is Linux’s native GUI API?

In Linux the graphical user interface is not a part of the operating system. The graphical user interface found on most Linux desktops is provided by software called the X Window System, which defines a device independent way of dealing with screens, keyboards and pointer devices.

X Window defines a network protocol for communication, and any program that knows how to "speak" this protocol can use it. There is a C library called Xlib that makes it easier to use this protocol, so Xlib is kind of the native GUI API. Xlib is not the only way to access an X Window server; there is also XCB.

Toolkit libraries such as GTK+ (used by GNOME) and Qt (used by KDE), built on top of Xlib, are used because they are easier to program with. For example they give you a consistent look and feel across applications, make it easier to use drag-and-drop, provide components standard to a modern desktop environment, and so on.

How X draws on the screen internally depends on the implementation. X.org has a device independent part and a device dependent part. The former manages screen resources such as windows, while the latter communicates with the graphics card driver, usually a kernel module. The communication may happen over direct memory access or through system calls to the kernel. The driver translates the commands into a form that the hardware on the card understands.

As of 2013, a new window system called Wayland is starting to become usable, and many distributions have said they will at some point migrate to it, though there is still no clear schedule. This system is based on OpenGL/ES API, which means that in the future OpenGL will be the "native GUI API" in Linux. Work is being done to port GTK+ and QT to Wayland, so that current popular applications and desktop systems would need minimal changes. The applications that cannot be ported will be supported through an X11 server, much like OS X supports X11 apps through Xquartz. The GTK+ port is expected to be finished within a year, while Qt 5 already has complete Wayland support.

To further complicate matters, Ubuntu has announced they are developing a new system called Mir because of problems they perceive with Wayland. This window system is also based on the OpenGL/ES API.



Related Topics



Leave a reply



Submit