Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
Hey, It isn't the first idea that comes to mind but what about SDL ? You have no buttons or any other GUI objects, but it doesn't sound like you need it and SDL suppose to be able to handle a lot of data with no problem. Also you can push events (data changes) to the loop safely with threads. It's just another idea for you to consider. Yochai On 07/18/2012 11:50 AM, Oleg Goldshmidt wrote: Hi, I have no - literally zero - experience in creating GUIs of any kind. I face the following task now: there is a C++ program that runs on Linux and basically receives some packets with some data over the network and does some transformations on the data. As a result some data structures are created and updated - potentially many times a second, say, a few times a second for any *single piece* of data. I need a *prototype* GUI that would display and constantly update (parts of) those structures, say strings and numbers with colours and labels and stuff. There may be a need for a drop-down menu for some configuration - don't know yet. Eventually maybe a button or two will be added to invoke some actions. I figure that the simplest way about it would be to make the GUI run on the same Linux machine and write it in C++ for ease of integration. What would be the easiest / simplest framework to use? Is it Qt? Ultimate++ (http://www.ultimatepp.org/ - just one of the things I found in a simple and brief search)? Since I have no experience it's difficult for me to judge quickly. What is important here is speed and painless ramp-up to some fairly low level. I want to be up and running as fast as possible with as little coding as possible. No need for bells and whistles. No need for long term maintenance. It is for a throw away demo/prototype - and yes, I am sure it (the GUI part) will be thrown away. Any suggestions / experiences / war stories / whatever? Thanks in advance, -- Oleg Goldshmidt | p...@goldshmidt.org mailto:o...@goldshmidt.org ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
On Thu, 2012-07-19 at 10:55 +0300, yochai wrote: Hey, It isn't the first idea that comes to mind but what about SDL ? How about giving an URL to a Website or a Wikipedia article, which describes the specific SDL that you refer to? When searching both resources, Google returned irrelevant links and Wikipedia was rather ambiguous. Thanks, --- Omer -- Kosher Cellphones (cellphones with blocked SMS, video and Internet) are menace to the deaf. They must be outlawed! May the recently deceased Rabbi Elyashiv rot in Hell due to his decree forbidding non-Kosher cellphones (and his non-opposition to the ruling exempting synagogues from the requirement to be accessible to people with disabilities)! (See also: http://www.zak.co.il/tddpirate/2006/04/21/the-grave-danger-to-the-deaf-from-kosher-cellphones/ and http://www.zak.co.il/tddpirate/2007/02/04/rabbi-eliashiv-declared-war-on-the-deaf/) My own blog is at http://www.zak.co.il/tddpirate/ My opinions, as expressed in this E-mail message, are mine alone. They do not represent the official policy of any organization with which I may be affiliated in any way. WARNING TO SPAMMERS: at http://www.zak.co.il/spamwarning.html ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
Sorry, I thought it will be clear what I'm speaking about. https://en.wikipedia.org/wiki/Simple_DirectMedia_Layer On 07/19/2012 11:37 AM, Omer Zak wrote: On Thu, 2012-07-19 at 10:55 +0300, yochai wrote: Hey, It isn't the first idea that comes to mind but what about SDL ? How about giving an URL to a Website or a Wikipedia article, which describes the specific SDL that you refer to? When searching both resources, Google returned irrelevant links and Wikipedia was rather ambiguous. Thanks, --- Omer ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
Hi all, On Thu, Jul 19, 2012 at 12:02 PM, yochai yoc...@titat.info wrote: Sorry, I thought it will be clear what I'm speaking about. https://en.wikipedia.org/wiki/Simple_DirectMedia_Layer I would recommend against SDL, because creating a decent GUI with it will require a lot of work, and on top of it will give you a giant window of raw graphics in the screen, which isn't very user-friendly or impressive. SDL is good enough for games, but not for a GUI application. There used to be a GUI library for SDL called ParaGUI but its home page is currently down. I'm not sure if it could fix all of SDL's limitations in regards to its usability as a GUI platform. Regards, -- Shlomi Fish On 07/19/2012 11:37 AM, Omer Zak wrote: On Thu, 2012-07-19 at 10:55 +0300, yochai wrote: Hey, It isn't the first idea that comes to mind but what about SDL ? How about giving an URL to a Website or a Wikipedia article, which describes the specific SDL that you refer to? When searching both resources, Google returned irrelevant links and Wikipedia was rather ambiguous. Thanks, --- Omer ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il -- -- Shlomi Fish http://www.shlomifish.org/ Electrical Engineering studies. In the Technion. Been there. Done that. Forgot a lot. Remember too much. Please reply to list if it's a mailing list post - http://shlom.in/reply . ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
Shlomi, I gave it as an idea as I understood he doesn't need a full GUI or anything with a shiny look but to print a lot of data very fast. I'm sorry if I miss-understood anything. Yochai On 07/19/2012 12:12 PM, Shlomi Fish wrote: Hi all, On Thu, Jul 19, 2012 at 12:02 PM, yochai yoc...@titat.info wrote: Sorry, I thought it will be clear what I'm speaking about. https://en.wikipedia.org/wiki/Simple_DirectMedia_Layer I would recommend against SDL, because creating a decent GUI with it will require a lot of work, and on top of it will give you a giant window of raw graphics in the screen, which isn't very user-friendly or impressive. SDL is good enough for games, but not for a GUI application. There used to be a GUI library for SDL called ParaGUI but its home page is currently down. I'm not sure if it could fix all of SDL's limitations in regards to its usability as a GUI platform. Regards, -- Shlomi Fish On 07/19/2012 11:37 AM, Omer Zak wrote: On Thu, 2012-07-19 at 10:55 +0300, yochai wrote: Hey, It isn't the first idea that comes to mind but what about SDL ? How about giving an URL to a Website or a Wikipedia article, which describes the specific SDL that you refer to? When searching both resources, Google returned irrelevant links and Wikipedia was rather ambiguous. Thanks, --- Omer ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
On Wed, Jul 18, 2012 at 11:50 AM, Oleg Goldshmidt p...@goldshmidt.orgwrote: Hi, I have no - literally zero - experience in creating GUIs of any kind. I face the following task now: there is a C++ program that runs on Linux and basically receives some packets with some data over the network and does some transformations on the data. As a result some data structures are created and updated - potentially many times a second, say, a few times a second for any *single piece* of data. I need a *prototype* GUI that would display and constantly update (parts of) those structures, say strings and numbers with colours and labels and stuff. There may be a need for a drop-down menu for some configuration - don't know yet. Eventually maybe a button or two will be added to invoke some actions. I figure that the simplest way about it would be to make the GUI run on the same Linux machine and write it in C++ for ease of integration. What would be the easiest / simplest framework to use? Is it Qt? Ultimate++ ( http://www.ultimatepp.org/ - just one of the things I found in a simple and brief search)? Since I have no experience it's difficult for me to judge quickly. What is important here is speed and painless ramp-up to some fairly low level. I want to be up and running as fast as possible with as little coding as possible. No need for bells and whistles. No need for long term maintenance. It is for a throw away demo/prototype - and yes, I am sure it (the GUI part) will be thrown away. Any suggestions / experiences / war stories / whatever? I'm suggestion you a different type of approach here: Use Lazarus. You do not need to worry about the GUI, because it's simple to use, you only worry about the logic behind your solution. It's not marketing, but how the concept works. Here is an example on a project of mine using Lazarus: https://github.com/ik5/display-quotes The code there is not about writing GUI, but everything that is not the GUI part. Thanks in advance, -- Oleg Goldshmidt | p...@goldshmidt.org o...@goldshmidt.org Ido ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
suggestions sought for a framework for a quick, dirty, really simple GUI prototype
Hi, I have no - literally zero - experience in creating GUIs of any kind. I face the following task now: there is a C++ program that runs on Linux and basically receives some packets with some data over the network and does some transformations on the data. As a result some data structures are created and updated - potentially many times a second, say, a few times a second for any *single piece* of data. I need a *prototype* GUI that would display and constantly update (parts of) those structures, say strings and numbers with colours and labels and stuff. There may be a need for a drop-down menu for some configuration - don't know yet. Eventually maybe a button or two will be added to invoke some actions. I figure that the simplest way about it would be to make the GUI run on the same Linux machine and write it in C++ for ease of integration. What would be the easiest / simplest framework to use? Is it Qt? Ultimate++ ( http://www.ultimatepp.org/ - just one of the things I found in a simple and brief search)? Since I have no experience it's difficult for me to judge quickly. What is important here is speed and painless ramp-up to some fairly low level. I want to be up and running as fast as possible with as little coding as possible. No need for bells and whistles. No need for long term maintenance. It is for a throw away demo/prototype - and yes, I am sure it (the GUI part) will be thrown away. Any suggestions / experiences / war stories / whatever? Thanks in advance, -- Oleg Goldshmidt | p...@goldshmidt.org o...@goldshmidt.org ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
Hello Oleg, You may want to split your application into two parts. The engine part (written in C++) will transform the data and write to sys.stdout the updates to the data with keys for identifying the data items. The GUI part will be written in one of the scripting languages, read from sys.stdin and display the values. If I were to do this today, I'd probably use Python with Tkinter or wxWidgets. However, you may want to look into Perl or Tcl/Tk. --- Omer On Wed, 2012-07-18 at 13:04 +0300, Shlomi Fish wrote: Hi Oleg, On Wed, 18 Jul 2012 11:50:26 +0300 Oleg Goldshmidt p...@goldshmidt.org wrote: Hi, I have no - literally zero - experience in creating GUIs of any kind. I face the following task now: there is a C++ program that runs on Linux and basically receives some packets with some data over the network and does some transformations on the data. As a result some data structures are created and updated - potentially many times a second, say, a few times a second for any *single piece* of data. I need a *prototype* GUI that would display and constantly update (parts of) those structures, say strings and numbers with colours and labels and stuff. There may be a need for a drop-down menu for some configuration - don't know yet. Eventually maybe a button or two will be added to invoke some actions. I figure that the simplest way about it would be to make the GUI run on the same Linux machine and write it in C++ for ease of integration. What would be the easiest / simplest framework to use? Is it Qt? Ultimate++ ( http://www.ultimatepp.org/ - just one of the things I found in a simple and brief search)? Since I have no experience it's difficult for me to judge quickly. This is the first time I recall hearing about Ultimate++ (maybe I have heard about it before and forgot all about it). In any case, I have concentrated most of the usual suspects here: http://www.shlomifish.org/open-source/portability-libs/#gui (I see now that Gtk+/gtkmm/etc. and FLTK are absent from that list - I will add them.). I happen to think that Qt is very nice (and it is now LGPLed), but I don't have a lot of experience doing extensive GUI development with it. You might try asking Omer Zak about it (he is CCed to this message), because he dealt with it more extensively in the past. What is important here is speed and painless ramp-up to some fairly low level. I want to be up and running as fast as possible with as little coding as possible. No need for bells and whistles. No need for long term maintenance. It is for a throw away demo/prototype - and yes, I am sure it (the GUI part) will be thrown away. Any suggestions / experiences / war stories / whatever? I should note that I prefer writing GUIs in higher-level, dynamic languages such as Perl, Python or Ruby, but in your case it may be too much hassle. Anyway, I think you can go with Qt. Regards, Shlomi Fish -- May the holy trinity of $_, @_ and %_ be hallowed. My own blog is at http://www.zak.co.il/tddpirate/ My opinions, as expressed in this E-mail message, are mine alone. They do not represent the official policy of any organization with which I may be affiliated in any way. WARNING TO SPAMMERS: at http://www.zak.co.il/spamwarning.html ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
On Wed, Jul 18, 2012 at 11:50 AM, Oleg Goldshmidt p...@goldshmidt.org wrote: Hi, I have no - literally zero - experience in creating GUIs of any kind. I face the following task now: there is a C++ program that runs on Linux and basically receives some packets with some data over the network and does some transformations on the data. As a result some data structures are created and updated - potentially many times a second, say, a few times a second for any *single piece* of data. I need a *prototype* GUI that would display and constantly update (parts of) those structures, say strings and numbers with colours and labels and stuff. There may be a need for a drop-down menu for some configuration - don't know yet. Eventually maybe a button or two will be added to invoke some actions. I figure that the simplest way about it would be to make the GUI run on the same Linux machine and write it in C++ for ease of integration. What would be the easiest / simplest framework to use? Is it Qt? Ultimate++ (http://www.ultimatepp.org/ - just one of the things I found in a simple and brief search)? Since I have no experience it's difficult for me to judge quickly. What is important here is speed and painless ramp-up to some fairly low level. I want to be up and running as fast as possible with as little coding as possible. No need for bells and whistles. No need for long term maintenance. It is for a throw away demo/prototype - and yes, I am sure it (the GUI part) will be thrown away. Any suggestions / experiences / war stories / whatever? Thanks in advance, (Sorry for the long post, I'm writing a very boring code and feel a bit chatty) This might not be the suggesting you're looking for, but hear me out. I write in-kernel C-based DPI software for a living and as such, I rather dislike C++ and the only GUIs I wrote in the past ~15 years are bash scripts that used xdialog and zenity. Long story short (?), we needed a fairly complex GUI to display the output of our system, and needed to do it within ~3 weeks (the life of a startup...) - as I was the only one with some free time, the job landed on my shoulders. Tried Qt, two hours later the police managed to persuade me to get off the roof. pass. (In Qt's defense, I usually start scratching when I see too many templates in one header file; If you're a OO-happy developer YMMV). Tried GTK, felt like re-learning Win32 GDI all over ago, 14 days left, pass. Tried a couple of other options (Tk, etc), but nothing really stuck. Tick tock, tick tock, I could hear the clock. Did some reading and saw a suggestion about Python / PyGTK combo (GTK over Python). Now, I never wrote a single line of Python in my life, but having depleted most of the logical options (Raw X11 is not really an option), I decided to give it a try and... ZING! I liked it. I mean, really liked it. Python is midway between C and C++ and uses the more-or-less the logic and code structure, so I simply dove in. The code itself is very readable (Yep, Pearl, I'm looking at you!), so coding by examples is as strait forward as it gets. Per GUI, the PyGTK API is simple and logical, and the documentation is fairly good (somewhat less if you decide to use PyGI as I did once I got going). Tools are not really needed (I used vim, what else?), though you may want to give glade a try when you build the initial GUI skeleton. In ~3 weeks we had a fairly complex multi-threaded GUI with a binary data conversion, grids, views, tabs, attachments and multimedia support (courtesy of pygtkwebkit and its gstreamer plugins) and as a added bonus, the performance is quite good (far better than, err, Java) and we even managed to add a nice animated splash screen :) Now, I wish I could take credit for being an excellent GUI programmer (I could, but I'm not really into getting struck by a lightning). The credit goes to Python and PyGTK (or actually, PyGI) In short (...), unless you have a good reason to use C++ or C for this GUI, I'd give PyGTK a chance. You won't be disappointed. - Gilboa I wish someone could mmap me to the Bahamas Davara ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Fwd: Fw: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
-- Forwarded message -- From: Shlomi Fish shlo...@shlomifish.org Date: Wed, Jul 18, 2012 at 3:58 PM Subject: Fw: suggestions sought for a framework for a quick, dirty, really simple GUI prototype To: shlo...@gmail.com Begin forwarded message: Date: Wed, 18 Jul 2012 13:04:16 +0300 From: Shlomi Fish shlo...@shlomifish.org To: Oleg Goldshmidt p...@goldshmidt.org Cc: Linux-IL linux-il@cs.huji.ac.il, Omer Zak w...@zak.co.il Subject: Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype Hi Oleg, On Wed, 18 Jul 2012 11:50:26 +0300 Oleg Goldshmidt p...@goldshmidt.org wrote: Hi, I have no - literally zero - experience in creating GUIs of any kind. I face the following task now: there is a C++ program that runs on Linux and basically receives some packets with some data over the network and does some transformations on the data. As a result some data structures are created and updated - potentially many times a second, say, a few times a second for any *single piece* of data. I need a *prototype* GUI that would display and constantly update (parts of) those structures, say strings and numbers with colours and labels and stuff. There may be a need for a drop-down menu for some configuration - don't know yet. Eventually maybe a button or two will be added to invoke some actions. I figure that the simplest way about it would be to make the GUI run on the same Linux machine and write it in C++ for ease of integration. What would be the easiest / simplest framework to use? Is it Qt? Ultimate++ ( http://www.ultimatepp.org/ - just one of the things I found in a simple and brief search)? Since I have no experience it's difficult for me to judge quickly. This is the first time I recall hearing about Ultimate++ (maybe I have heard about it before and forgot all about it). In any case, I have concentrated most of the usual suspects here: http://www.shlomifish.org/open-source/portability-libs/#gui (I see now that Gtk+/gtkmm/etc. and FLTK are absent from that list - I will add them.). I happen to think that Qt is very nice (and it is now LGPLed), but I don't have a lot of experience doing extensive GUI development with it. You might try asking Omer Zak about it (he is CCed to this message), because he dealt with it more extensively in the past. What is important here is speed and painless ramp-up to some fairly low level. I want to be up and running as fast as possible with as little coding as possible. No need for bells and whistles. No need for long term maintenance. It is for a throw away demo/prototype - and yes, I am sure it (the GUI part) will be thrown away. Any suggestions / experiences / war stories / whatever? I should note that I prefer writing GUIs in higher-level, dynamic languages such as Perl, Python or Ruby, but in your case it may be too much hassle. Anyway, I think you can go with Qt. Regards, Shlomi Fish -- - Shlomi Fish http://www.shlomifish.org/ Original Riddles - http://www.shlomifish.org/puzzles/ Chuck Norris doesn’t commit changes, the changes commit for him. — Araujo Please reply to list if it's a mailing list post - http://shlom.in/reply . -- - Shlomi Fish http://www.shlomifish.org/ My Public Domain Photos - http://www.flickr.com/photos/shlomif/ Learn Perl from “Learning Perl in 24 Minutes Unleashed, in a Nutshell for Dummies.” — based on Shlomi Fish and f00li5h on #perl Please reply to list if it's a mailing list post - http://shlom.in/reply . -- -- Shlomi Fish http://www.shlomifish.org/ Electrical Engineering studies. In the Technion. Been there. Done that. Forgot a lot. Remember too much. Please reply to list if it's a mailing list post - http://shlom.in/reply . ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
I wish there was a like button to the email thread. Two thumps up, even do I love Perl and I think it is r34dabl3. :) On Wed, Jul 18, 2012 at 3:28 PM, Gilboa Davara gilb...@gmail.com wrote: On Wed, Jul 18, 2012 at 11:50 AM, Oleg Goldshmidt p...@goldshmidt.org wrote: Hi, I have no - literally zero - experience in creating GUIs of any kind. I face the following task now: there is a C++ program that runs on Linux and basically receives some packets with some data over the network and does some transformations on the data. As a result some data structures are created and updated - potentially many times a second, say, a few times a second for any *single piece* of data. I need a *prototype* GUI that would display and constantly update (parts of) those structures, say strings and numbers with colours and labels and stuff. There may be a need for a drop-down menu for some configuration - don't know yet. Eventually maybe a button or two will be added to invoke some actions. I figure that the simplest way about it would be to make the GUI run on the same Linux machine and write it in C++ for ease of integration. What would be the easiest / simplest framework to use? Is it Qt? Ultimate++ (http://www.ultimatepp.org/ - just one of the things I found in a simple and brief search)? Since I have no experience it's difficult for me to judge quickly. What is important here is speed and painless ramp-up to some fairly low level. I want to be up and running as fast as possible with as little coding as possible. No need for bells and whistles. No need for long term maintenance. It is for a throw away demo/prototype - and yes, I am sure it (the GUI part) will be thrown away. Any suggestions / experiences / war stories / whatever? Thanks in advance, (Sorry for the long post, I'm writing a very boring code and feel a bit chatty) This might not be the suggesting you're looking for, but hear me out. I write in-kernel C-based DPI software for a living and as such, I rather dislike C++ and the only GUIs I wrote in the past ~15 years are bash scripts that used xdialog and zenity. Long story short (?), we needed a fairly complex GUI to display the output of our system, and needed to do it within ~3 weeks (the life of a startup...) - as I was the only one with some free time, the job landed on my shoulders. Tried Qt, two hours later the police managed to persuade me to get off the roof. pass. (In Qt's defense, I usually start scratching when I see too many templates in one header file; If you're a OO-happy developer YMMV). Tried GTK, felt like re-learning Win32 GDI all over ago, 14 days left, pass. Tried a couple of other options (Tk, etc), but nothing really stuck. Tick tock, tick tock, I could hear the clock. Did some reading and saw a suggestion about Python / PyGTK combo (GTK over Python). Now, I never wrote a single line of Python in my life, but having depleted most of the logical options (Raw X11 is not really an option), I decided to give it a try and... ZING! I liked it. I mean, really liked it. Python is midway between C and C++ and uses the more-or-less the logic and code structure, so I simply dove in. The code itself is very readable (Yep, Pearl, I'm looking at you!), so coding by examples is as strait forward as it gets. Per GUI, the PyGTK API is simple and logical, and the documentation is fairly good (somewhat less if you decide to use PyGI as I did once I got going). Tools are not really needed (I used vim, what else?), though you may want to give glade a try when you build the initial GUI skeleton. In ~3 weeks we had a fairly complex multi-threaded GUI with a binary data conversion, grids, views, tabs, attachments and multimedia support (courtesy of pygtkwebkit and its gstreamer plugins) and as a added bonus, the performance is quite good (far better than, err, Java) and we even managed to add a nice animated splash screen :) Now, I wish I could take credit for being an excellent GUI programmer (I could, but I'm not really into getting struck by a lightning). The credit goes to Python and PyGTK (or actually, PyGI) In short (...), unless you have a good reason to use C++ or C for this GUI, I'd give PyGTK a chance. You won't be disappointed. - Gilboa I wish someone could mmap me to the Bahamas Davara ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
Hi, On Wed, Jul 18, 2012 at 4:33 PM, Meir Michanie me...@riunx.com wrote: I wish there was a like button to the email thread. Two thumps up, even do I love Perl and I think it is r34dabl3. :) Well, you can always like the posts' URL on StumbleUpon: * http://www.stumbleupon.com/ * http://en.wikipedia.org/wiki/StumbleUpon . Though it seems a bit redundant marking random mailing list threads like that. Regards, -- Shlomi Fish On Wed, Jul 18, 2012 at 3:28 PM, Gilboa Davara gilb...@gmail.com wrote: On Wed, Jul 18, 2012 at 11:50 AM, Oleg Goldshmidt p...@goldshmidt.org wrote: Hi, I have no - literally zero - experience in creating GUIs of any kind. I face the following task now: there is a C++ program that runs on Linux and basically receives some packets with some data over the network and does some transformations on the data. As a result some data structures are created and updated - potentially many times a second, say, a few times a second for any *single piece* of data. I need a *prototype* GUI that would display and constantly update (parts of) those structures, say strings and numbers with colours and labels and stuff. There may be a need for a drop-down menu for some configuration - don't know yet. Eventually maybe a button or two will be added to invoke some actions. I figure that the simplest way about it would be to make the GUI run on the same Linux machine and write it in C++ for ease of integration. What would be the easiest / simplest framework to use? Is it Qt? Ultimate++ (http://www.ultimatepp.org/ - just one of the things I found in a simple and brief search)? Since I have no experience it's difficult for me to judge quickly. What is important here is speed and painless ramp-up to some fairly low level. I want to be up and running as fast as possible with as little coding as possible. No need for bells and whistles. No need for long term maintenance. It is for a throw away demo/prototype - and yes, I am sure it (the GUI part) will be thrown away. Any suggestions / experiences / war stories / whatever? Thanks in advance, (Sorry for the long post, I'm writing a very boring code and feel a bit chatty) This might not be the suggesting you're looking for, but hear me out. I write in-kernel C-based DPI software for a living and as such, I rather dislike C++ and the only GUIs I wrote in the past ~15 years are bash scripts that used xdialog and zenity. Long story short (?), we needed a fairly complex GUI to display the output of our system, and needed to do it within ~3 weeks (the life of a startup...) - as I was the only one with some free time, the job landed on my shoulders. Tried Qt, two hours later the police managed to persuade me to get off the roof. pass. (In Qt's defense, I usually start scratching when I see too many templates in one header file; If you're a OO-happy developer YMMV). Tried GTK, felt like re-learning Win32 GDI all over ago, 14 days left, pass. Tried a couple of other options (Tk, etc), but nothing really stuck. Tick tock, tick tock, I could hear the clock. Did some reading and saw a suggestion about Python / PyGTK combo (GTK over Python). Now, I never wrote a single line of Python in my life, but having depleted most of the logical options (Raw X11 is not really an option), I decided to give it a try and... ZING! I liked it. I mean, really liked it. Python is midway between C and C++ and uses the more-or-less the logic and code structure, so I simply dove in. The code itself is very readable (Yep, Pearl, I'm looking at you!), so coding by examples is as strait forward as it gets. Per GUI, the PyGTK API is simple and logical, and the documentation is fairly good (somewhat less if you decide to use PyGI as I did once I got going). Tools are not really needed (I used vim, what else?), though you may want to give glade a try when you build the initial GUI skeleton. In ~3 weeks we had a fairly complex multi-threaded GUI with a binary data conversion, grids, views, tabs, attachments and multimedia support (courtesy of pygtkwebkit and its gstreamer plugins) and as a added bonus, the performance is quite good (far better than, err, Java) and we even managed to add a nice animated splash screen :) Now, I wish I could take credit for being an excellent GUI programmer (I could, but I'm not really into getting struck by a lightning). The credit goes to Python and PyGTK (or actually, PyGI) In short (...), unless you have a good reason to use C++ or C for this GUI, I'd give PyGTK a chance. You won't be disappointed. - Gilboa I wish someone could mmap me to the Bahamas Davara ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il --
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
On 07/18/2012 04:50 AM, Oleg Goldshmidt wrote: What is important here is speed and painless ramp-up to some fairly low level. I want to be up and running as fast as possible with as little coding as possible. No need for bells and whistles. No need for long term maintenance. It is for a throw away demo/prototype - and yes, I am sure it (the GUI part) will be thrown away. Any suggestions / experiences / war stories / whatever? I've been using fltk since 1999, with great success. It is remarkably simple compared to just about every other framework out there, and it is ridiculously fast (but only slightly less capable than Qt). This is the toolkit that CinePaint switched to from GTK. It is C+- style - that is, it is C++ as it was usable in the year 2000: Classes, but no multiple inheritance; no exceptions or rtti used; threads supported by virtue of keeping GUI on one thread, and providing simple signaling to the GUI thread. It is 90s style - that is, there are a lot of globals. Don't diss it until you've tried - the code is simpler and faster as a result, and nothing is missing; e.g., if you want to draw text in in red with helvetica, size 10, you just do: fl_font(FL_HELVETICA, 10); fl_color(FL_RED); fl_draw(text, x, y); It is very well documented, and comes with tens of simple-to-understand yet very useful examples. If you do take fltk, you want the recently released 1.3 branch (ignore 2.0). ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: suggestions sought for a framework for a quick, dirty, really simple GUI prototype
Quoting Oleg Goldshmidt p...@goldshmidt.org: Hi, I have no - literally zero - experience in creating GUIs of any kind. I face the following task now: there is a C++ program that runs on Linux and basically receives some packets with some data over the network and does some transformations on the data. As a result some data structures are created and updated - potentially many times a second, say, a few times a second for any *single piece* of data. I need a *prototype* GUI that would display and constantly update (parts of) those structures, say strings and numbers with colours and labels and stuff. There may be a need for a drop-down menu for some configuration - don't know yet. Eventually maybe a button or two will be added to invoke some actions. I figure that the simplest way about it would be to make the GUI run on the same Linux machine and write it in C++ for ease of integration. What would be the easiest / simplest framework to use? Is it Qt? Ultimate++ ( http://www.ultimatepp.org/ - just one of the things I found in a simple and brief search)? Since I have no experience it's difficult for me to judge quickly. What is important here is speed and painless ramp-up to some fairly low level. I want to be up and running as fast as possible with as little coding as possible. No need for bells and whistles. No need for long term maintenance. It is for a throw away demo/prototype - and yes, I am sure it (the GUI part) will be thrown away. Any suggestions / experiences / war stories / whatever? Thanks in advance, -- Oleg Goldshmidt | p...@goldshmidt.org o...@goldshmidt.org Tcl/Tk !!! Used it several times, it was made exactly for that. S. -- Shimon Panfil: Industrial Physics and Simulations http://industrialphys.com ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il