r/Python • • May 11 '18

Create GUI apps with Python in minutes

https://build-system.fman.io
0 Upvotes

31 comments sorted by

68

u/ase1590 May 11 '18

You misspelled appications on your github.

On a closer inspection, it looks like you just outright use PyQt as the GUI toolkit, so this brings no advantage over just straight using PyQt. I think this is a bit dishonest to advertise it as some kind of new GUI toolkit.

Where this does excel is that you seem to have wrapped up some useful tools for deploying your application after making the gui.

In that regard, you have a nice PyQt deployment toolkit.

29

u/not_perfect_yet May 11 '18

Shhh. Just buy a damn license.

...you can purchase a commercial license for EUR 249 per developer:

11

u/ase1590 May 11 '18 edited May 11 '18

And then there's that license minefield too, considering its leveraging Qt.

Though at least it's free to use for open source work.

-5

u/mherrmann May 11 '18

It's not a minefield. As mentioned on the page: Most apps will be able to use Qt as a library, under the LGPL, and thus don't need a commercial Qt license.

8

u/ase1590 May 11 '18 edited May 11 '18

Are you absolutely sure?

While I am not a lawyer, this is my understanding of the issue:

Can my proprietary application be used with the copy of the GPL version of PyQt that the user already has installed (as part of their Linux distribution for example)? A.Yes, so long as you meet the following conditio

you are using the LGPL version of Qt

your proprietary application has been developed with the commercial version of PyQt

your commercial PyQt license covers the version of PyQt that the user has installed.

So while you will not necessarily need a Qt license, you will likely need a PyQt license.

edit: Guess you stated this:

you can avoid this by using fbs with Qt for Python, but support for it is still in the early stages.

This is still a hassle on the developer side worrying about licenses. At least your were upfront.

Though, You also don't have your license terms stated very clearly on the site. It took me going to the paypal link to even find it it was a perpetual license tied to the purchaser.

-5

u/mherrmann May 11 '18

Or use it for free under the GPL.

7

u/Tetsubin May 11 '18 edited May 14 '18

That was my take on this. Sounds like some infrastructure around PyInstaller that makes it more useful, which could actually be a great thing. One of the biggest challenges for any application development system is deploying the app across multiple platforms.

0

u/mherrmann May 11 '18

Where do I say it's a new toolkit? It literally says "based on Qt" in the headline. The advantages over "just" PyQt are mentioned on the site (creating installers, among other things).

Thx for pointing out the typo! I'm on the road and will fix once at home.

7

u/ase1590 May 11 '18

lets you create GUI apps for Windows, Mac and Linux. It is a lightweight alternative to Electron based on Qt

You never explicitly state that, but you sell it as an electron alternative, which implies its some kind of new GUI toolkit.

based on QT

implies you've done some extensive core Qt toolkit modification, when I don't think that's the case.

This is the impression I got, as well as other people in this thread when rapidly skimming over the project's site.

I would have pushed

Deploy cross-platform desktop apps in minutes

instead of

Create cross-platform desktop apps in minutes

-1

u/mherrmann May 11 '18

"based on QT" implies you've done some extensive core Qt toolkit modification

You sure do read a lot between the lines. Electron is based on Chromium. Would you say it has done extensive modification of its rendering engine etc.?

I would have pushed "Deploy" instead of "Create cross-platform desktop apps in minutes"

It's an integrated solution that lets you do both. I position it as an alternative to Electron because it is.

Finally, all the points you raise are addressed in the Section "Under the hood" on the page. It explicitly says that fbs "does not reinvent the wheel" and merely "integrates" PyQt et al. The same goes for other of your comments here, where you criticize something then "edit" your comment because you then went back and read the whole page.

4

u/ase1590 May 11 '18

Would you say it has done extensive modification of its rendering engine etc.?

It's quite a bit of modification to give it extensive platform integration API which has led to design differences when compared to something like Node-Webkit.

So yes.

5

u/xShinryuu May 11 '18

I just came here to ask about a beginner-friendly GUI framework. I tried Pyforms but I couldn't understand the documentation that well. Is this good?

9

u/ase1590 May 11 '18

This project just uses PyQt. You'd be better off learning to use Tkinter for now. Once you have a good grasp on Object Oriented Programming with python, PyQt is going to be the easiest to pick up.

3

u/xShinryuu May 11 '18

I started with Java so I know OOP

4

u/ase1590 May 11 '18

Then you'll be fine moving directly into PyQt. Documentation is great and github is full of lots of small PyQt projects to look at. ZetCode PyQt5 guide is what a lot of people point at to get started.

1

u/RielDealJr May 11 '18

appJar is a nice easy to use wrapper for tkinter, if you are looking for something simple.

0

u/mherrmann May 11 '18

It's easier than the alternatives for creating something that you can actually ship to your users. If you have not used PyQt (fbs's underlying GUI technology), you might need to take some tutorials on it after that of fbs.

2

u/_sigo_ May 11 '18

Very cool! Slightly off topic question - what's the theme that you're using for this landing page? Is this something custom or a template? Looks nice and clean.

1

u/mherrmann May 11 '18

Thanks! It's just Bootstrap with a few custom colors.

5

u/TheTerrasque May 11 '18

Tutorial: "Download the source from here" - for a "Hello World" app. If getting one window without any content to show is so complex you can't show it inline I'm not sure I would trust it.

2

u/mherrmann May 11 '18

You're getting a window and an installer. Show me another technology that lets you do this and can still fit in an inline example.

1

u/TheTerrasque May 12 '18

program.py

import wx

app = wx.App()

frame = wx.Frame(None, title='Hello World')
frame.Show()

app.MainLoop()

And for packaging:

pip install pyinstaller
pyinstaller -Fw program.py

And presto, you have a distributable Hello World app. Ready to take the world by storm!

1

u/mherrmann May 14 '18

That's not an installer, ie. a .dmg file on Mac or an installation wizard on Windows...

4

u/naught-me May 11 '18

How is this different than PyWebView? They seem really similar.

2

u/Dorito_Troll May 11 '18

How does this compare to tkinter in your opinion?

6

u/ase1590 May 11 '18

This just uses PyQt, its not anything new.

tkinter is great for small applications.

PyQt is great for applications you need more advanced features in and/or prefer object oriented programming.

2

u/simplegadget512 May 12 '18

I dig it. I've got just the project in mind to play around with this.

2

u/MikeTheWatchGuy Jul 19 '18

I just released a new Python GUI SDK meant to allow you to build custom GUIs in minutes. For real... in minutes. I'm not talking just about Message Boxes or single field input forms, but rather flexible forms that don't require a lot of code to implement and use. It's based on tkinter so it doesn't need a bunch of extra packages installed, unlike other GUIs.

To install

pip install PySimpleGUI

I just dashed out this little example form for another post:

https://user-images.githubusercontent.com/13696193/42919952-6cb80060-8ae2-11e8-8277-545fb91b7e17.jpg

Here's all of the code required to build, show, collect results..
form = sg.FlexForm('Rename files in folder', auto_size_text=True, font=('Helvatica', 12))
layout = [[sg.Text('Source Folder', size=(12,1)), sg.Input(),sg.FolderBrowse()],
          [sg.Text('Search Pattern', size=(12,1)), sg.Input()],
          [sg.Text('Rename To', size=(12,1)), sg.Input()], 
          [sg.Submit(), sg.Cancel()]]
button, values = form.LayoutAndShow(layout)

There are not many choices between zero and tkinter. Jumping right to tkinter is not an easy task for a beginner.

1

u/impshum x != y % z May 11 '18

Very nice. I'll give it a whirl.

-2

u/guyanf May 11 '18

wxpython

2

u/ase1590 May 11 '18

Yes, wxpython is a thing that exists.

Your point?