askopenfilename()
Christian Gollwitzer
auriocus at gmx.de
Sat Nov 28 08:34:27 EST 2015
Am 28.11.15 um 13:48 schrieb Ulli Horlacher:
> Christian Gollwitzer <auriocus at gmx.de> wrote:
>> Many problems would simply go away if you wrote the whole thing as a GUI
>> program.
>
> Too much hassle.
> The predecessor was a Perl/Tk program and I have had to invest 90% of the
> programming work into the GUI handling. No fun at all.
As I see it, the program consists only of user interface - or is there
any "algorithm" working behinds the scenes? Maybe you could pass the
task on to somebody who enjoys GUI programming?
> Now, with fexit in Python, I skipped most of these problems.
> The only GUI part is the file selection.
>
>
>> If I understand correctly, what you want - a program to select files and
>> folders to upload to your server
>
> This is only one of the tasks. The main menu looks:
>
> [s] send a file or directory
> [g] get a file
> [c] change login data (user, server, auth-ID)
> [l] login with webbrowser
> [u] update fexit
> [h] help
> [q] quit
All of this is easily integrated into a GUI like the one I posted (have
you tried it?), either as a button or as a menu entry. IMO the most
common GUI pattern for this kind of thing is a side-by-side view of the
directories on the server and on the client, and a button (or
drag'n'drop) to move files between both views. I understand this is not
as easy as the script posted by me - nonetheless quite doable. For an
experienced GUI script writer it'll take a weekend to get the basics
running.
> (with more features to come in the future)
>
> And the CLI:
>
> framstag at juhu:~: ./fexit.py -h
> usage: fexit [-C "comment"] [-a container] file(s) recipient[,...]
> example: fexit flupp.avi framstag at rus.uni-stuttgart.de
> example: fexit -C "more data" -a labdata *.png x1 at flupp.org,x2 at flupp.org
>
> usage: fexit FEX-download-URL
> example: fexit http://fex.rus.uni-stuttgart.de/fop/jHn34yp7/flupp.avi
>
This part should probably stay as it is. For a command line tool, an
scp-like interface seems well-fitting. But for guided user input, an
interface which prompts the user for input has never been a good
solution. You have to work very hard to make that convenient. Have a
look at lftp, for instance. In the end, real GUI programming will be
easier (and more accessible)
A (still) alternative solution would be an interface to the OS to make
it a remote mounted folder (works for WebDAV on any modern OS, for
instance) or a daemon, which watches and synchronizes a directory (this
is how Dropbox works). This way it feels much more integrated to the
user - they can use whatever file manager they like to do the transfer,
or even "save" from any application (like Word, Firefox, ...) into the
remote folder.
Christian
More information about the Python-list
mailing list