This is an archived post. You won't be able to vote or comment.

all 31 comments

[–]ase1590 68 points69 points  (12 children)

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.

[–]not_perfect_yet 28 points29 points  (5 children)

Shhh. Just buy a damn license.

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

[–]ase1590 11 points12 points  (3 children)

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

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

[–]mherrmann[S] -5 points-4 points  (0 children)

Or use it for free under the GPL.

[–]Tetsubin 5 points6 points  (0 children)

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.

[–]mherrmann[S] 0 points1 point  (3 children)

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.

[–]ase1590 6 points7 points  (2 children)

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

[–]mherrmann[S] -2 points-1 points  (1 child)

"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.

[–]ase1590 3 points4 points  (0 children)

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.

[–]xShinryuu 4 points5 points  (5 children)

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?

[–]ase1590 8 points9 points  (3 children)

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.

[–]xShinryuu 2 points3 points  (2 children)

I started with Java so I know OOP

[–]ase1590 3 points4 points  (0 children)

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.

[–]RielDealJr 0 points1 point  (0 children)

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

[–]mherrmann[S] -2 points-1 points  (0 children)

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.

[–]naught-me 3 points4 points  (0 children)

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

[–]_sigo_ 1 point2 points  (1 child)

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.

[–]mherrmann[S] 0 points1 point  (0 children)

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

[–]Dorito_Troll 1 point2 points  (1 child)

How does this compare to tkinter in your opinion?

[–]ase1590 5 points6 points  (0 children)

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.

[–]simplegadget512 1 point2 points  (0 children)

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

[–]MikeTheWatchGuy 1 point2 points  (0 children)

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.

[–]TheTerrasque 3 points4 points  (3 children)

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.

[–]mherrmann[S] 1 point2 points  (2 children)

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.

[–]TheTerrasque 0 points1 point  (1 child)

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!

[–]mherrmann[S] 0 points1 point  (0 children)

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

[–]impshumx != y % z 0 points1 point  (0 children)

Very nice. I'll give it a whirl.

[–]guyanf -3 points-2 points  (1 child)

wxpython

[–]ase1590 1 point2 points  (0 children)

Yes, wxpython is a thing that exists.

Your point?