windows application

Go To Last Post
22 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Guys, could you recommend a program for a beginner to create a windows app.  I'm thinking their is bound to be a simple and intuitive way of doing this.  

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Microsoft have a free version of Visual Studio.

 

Embarcadero (the successor to Borland) have free "Starter" editions of their Delphi and C++ Builder tools: https://www.embarcadero.com/free-tools

 

There are also open-source GCC-based things - I'm sure someone will be along with the details soon ... 

 

EDIT

 

Of course, for plain command-line stuff, there's Python.

There are also various "Frameworks" that can be used to build GUI apps with Python; eg, wxGlade: http://wxglade.sourceforge.net/

Last Edited: Mon. Jan 8, 2018 - 08:50 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Depends very much of a lot of things:

  • Previous experience
  • Functionality, complexity and size of planned application

etc..

 

If you tell us more about what capabilities you require the recommendations will likely be more "precise".

 

You will get different recommendations from different people. (Chances are it will turn slightly "war'ish".)

 

Here's mine: C# .Net with Windows Forms for the UI developed in free edition of MS Visual Studio ("Visual Studio, Community Edition"). Version depends on what version of Windows you're running.

 


 

I'm thinking their is bound to be a simple and intuitive way of doing this.  

Again, depending on previous experience, this might be so. Or not..

 

Applications with a "mode-less" graphical UI are have certain aspects that are not seen in "classical prompt/response" applications.

 

OTOH, you will see some similarities with embedded applications. Any UI activity from the user generates "events" that are routed to different "event handlers".

 

Example:

If handling an event takes a long time, the UI will freeze - unless you push the handling off to a separate "worker thread". Application can keep on running the UI, but will have to react on the state of the worker thread in some way.

 

Sounds similar to interrupts and interrupt handlers in an embedded application? In a sense it is.

 

How much of these things you need to handle explicitly depends on chosen environment. 

 


 

I have a feeling that your application will need to communicate over TCP/IP.. ;-)   Correct?

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

Last Edited: Mon. Jan 8, 2018 - 09:09 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Basically, I wan to connect a AVR32 to application that will then display the said information in boxes and and wee lights ect ect

The information will be sent using TCP

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Xojo is a language and IDE that is BASIC-like in syntax. Pretty easy. It is a bit on the expensive side for all the features (compile native apps for all major operating systems, data bases, and such) BUT, for free, you can create an app on any of those OS's and run it in debug mode. All the windows, dialogs, controls, and such, look "right" because they are native. There are single OS versions with limited additional features (no database, for example) that are less expensive. This is, in all senses of the word, a "professional" development system; it has been used to create quite a few commercial applications (medial records systems, movie editing, communications, and more) though it tends to be pretty invisible.

 

You can also create apps in Python. I know that the GUI situation has improved significantly since I used it - it used to be UGLY. It is free in the conventional sense. In my experience, Python has a significantly steeper learning curve than Xojo.

 

Both have tcp/ip interfaces.

 

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

Last Edited: Mon. Jan 8, 2018 - 09:58 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well, .Net supports "sockets" communication. (See e.g. this .)

 

Disclaimer: I've not used .Net sockets (or at least can't recall ever using it) but have used other TCP/IP APIs. Glancing over the class documentation it looks like a fairly straight-forward socket class.

 

There's also a TcpListener class, and the documentation page shows one straight-forward example of usage.

 


 

I suggest you want for some other recommendations also  - I suspect that others here also have experience with writing Windows applications, and maybe started from a spot similar to yours (I've been writing Windows software for roughly 25 years).

 

But ... if you're interested in C#/.Net then start having a look around the documentation, and search out some beginner tutorials. Filter hard - the subject is vast!

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Any development suite designed for making a GUI and or run on a PC is going to have a multitude of libs for all kind of stuff including TCP/IP.

 

With what languages do you have any experience?

If you know some Python then TkInter might be the thing for you.

http://effbot.org/tkinterbook/tk...

 

A long time ago I used the Borland C++ builder (20+ years ago probably...)

I very much liked the intuitive way of designing the GUI just by dragging things like buttons and check boxes onto the canvas of the program.

 

My dislike for microsoft is still strong even after all those years.

Part of a school project was to rewrite a FTP server program just to make it compatible with microsoft stuff.

Microsoft could not be bothered to adhere to any standard. Instead they made a point of not being compatible. It was part of their fudge campaing back then. I still hate them for that.

 

Qt seems to be a nice ide and they also have GUI design stuff.

Qt also has a dual liscensing scheme. They give (almost) everything away for free for personal use and open source projects. If you use it for commercial projects they want a piece of the pie.

https://www.qt.io/download

Paul van der Hoeven.
Bunch of old projects with AVR's:
http://www.hoevendesign.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Paulvdh wrote:
Any development suite designed for making a GUI and or run on a PC is going to have a multitude of libs for all kind of stuff including TCP/IP.

Indeed.

 

TCP/IP (and higher protocols like HTTP) have been pretty much de rigueur for any PC app for the last few decades.

 

designing the GUI just by dragging things like buttons and check boxes onto the canvas of the program.

Again, that has been pretty much de rigueur for any PC GUI development for the last few decades.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Paulvdh wrote:
Qt seems to be a nice ide and they also have GUI design stuff. Qt also has a dual liscensing scheme. They give (almost) everything away for free for personal use and open source projects. If you use it for commercial projects they want a piece of the pie. https://www.qt.io/download

 

I recommend Qt too. It's fairly easy and comes with modules for pretty much anything, like Serial interface, TCP/IP, HTTP, ...

 

But somehow they screwed up their download site. Or i'm just too stupid to find the damn button. Here's a link that actually leads to the installer downloads: http://download.qt.io/community_...

"Some people die at 25 and aren't buried until 75." -Benjamin Franklin

 

What is life's greatest illusion?"  "Innocence, my brother." -Skyrim

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Fianawarrior wrote:
Basically, I wan to connect a AVR32 to application that will then display the said information in boxes and and wee lights ect ect

Personally I'd just use Python for such things these days.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Any progress, fianawarrior?

 


 

clawson wrote:

Personally I'd just use Python for such things these days.

Using PyQt?

Or TkInter?

Or WxPython?

Or ...?

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

Last Edited: Thu. Jan 11, 2018 - 12:00 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
Personally I'd just use Python for such things these days.

and then you wouldn't be stuck with having to use a Windows PC to run it on - it'd work on a Raspberry Pi, a Linux box, etc, etxc, ...

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Have a look at Lazarus.

 

http://www.lazarus-ide.org

'This forum helps those who help themselves.'

 

pragmatic  adjective dealing with things sensibly and realistically in a way that is based on practical rather than theoretical consideration.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Apparently you can also use Python as a script language in Libreoffice.

https://duckduckgo.com/html?q=li...

 

This way you should be able to put your data almost directly into a spreadsheet and draw graphs from that with minimal programming.

Paul van der Hoeven.
Bunch of old projects with AVR's:
http://www.hoevendesign.com

Last Edited: Thu. Jan 11, 2018 - 03:06 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

JohanEkdahl wrote:

clawson wrote:

 

Personally I'd just use Python for such things these days.

Using PyQt?

Or TkInter?

Or WxPython?

Or ...?

 

Hey Cliff! In case I was misunderstood: I am genuinely interested in your advice/recommendation re UI "framework" for Python. I might want to experiment a little with this, but surveying (at least) three alternatives is a bit over the top with the backlog of hobby-activities I have ATM. (-:

 

I had a quick glance at a tutorial for WxPython and it looks interesting, but if you have some valuable advice on choice of "framework" then please spill your wisdom over us!

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

TBH, I found wxPython to be rather clunky.

 

It seemed all to easy to mess up the design in the GUI editor, and the only way to recover would be to manually hack the XML file.

 

But it was what the Client was using ...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm still in the throes of death so not thinking very straight but for UI in Python I just stick to tcl/tkinter because it's part of the standard installations so I can give you a 10 line Python program with UI and I know it's just going to run and work on everyone's PC without needing to pip/install anything special.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks Andy!

 

For "simple" applications (one window, a few (10 or max 20) widgets) is it feasible to "do it all in code" without any fancy "UI editor"? That's how the tutorial I found did it..

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sorry - it's wxGlade that's the graphical GUI builder (no, that's not a tautology!)

 

I guess if you're the kind of masochist that likes designing & describing graphical things in text, then it must be possible ...

 

Do you like to do all your schematics in netlist form ... ?

 

cheeky

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I just put the code (copy below) from: Simplest Web Browser in Python & Tkinter – 32 lines of code

http://knowpapa.com/wb/

...

in a text file, saved it as asdf.py, made it executable and executed it with: "python3 asdf.py"

 

And it "works". It starts a GUI. I can enter an URL in a entry box, click on "Go" and the text of some remote website in the text area.

Pretty impressive for a hand full of code.

#!/usr/bin/python3
from tkinter import *
import urllib.request
def go():
	text.delete(1.0, END)
	with urllib.request.urlopen(entry.get()) as response:
		received_html = response.read()
	text.insert(1.0, received_html)

browser_window = Tk()
browser_window.title('knowpapa browser')
label = Label(browser_window, text= 'Enter URL:')
entry = Entry(browser_window)
entry.insert(END, "http://knowpapa.com")
button = Button(browser_window, text='Go', command = go)
text = Text(browser_window)
label.pack(side=TOP)
entry.pack(side=TOP)
button.pack(side=TOP)
text.pack(side= TOP)
browser_window.mainloop()

Upto this level xwWidgets seems to look quite like tkInter.

Managing a handfull of widgets in code also does not seem a big problem to me (Although I haven't done it).

But avoid the magic numbers. Define some constants for coordinates and size if you want to line up some check boxes.

Paul van der Hoeven.
Bunch of old projects with AVR's:
http://www.hoevendesign.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

OK and thanks, Cliff!

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Paulvdh wrote:
Define some constants for coordinates and size if you want to line up some check boxes.

This is where the graphical GUI designers really come into their own: you don't have to manually mess about with coordinates - they let let you specify how things align, what "sticks" to what, how they "strectch" when the window is resized, etc, etc, ...