This time we are gonna make something really cool: an app. And in just some seconds and a couple of lines of code. With a GUI too. How is it possible? Python has many ways to make a GUI, but not so easy as you could expect from Python, right? We will talk about tkinter soon. It is a great way to make GUI's with Python, but... what if we would to use Python the way we love: in an immediate intuitive, interactive way? Here's how, with ipywidgets for jupyter notebook. We have talked yet about it and we have seen how to create a text box. Now we will return to that code, adding just some lines of code to make a very basic, simple app to write what we input in the text box in a new file. So, as usual, we will go further with our tutorials, but in a very slow and easy way to show were you could get with different instruments you have at your disposal with Python.
So, here's the very simple, but effective, example:
from ipywidgets import widgets
# Let's make a text box
text = widgets.Text()
# Le's make some action on submit
def handle_submit(sender):
'Writing on a txt file your input in the text box'
print("Thank you for entering this text:",text.value,"\nIt has been written on a file called 'newfile.txt'")
with open("newfile.txt") as f: # I'm using with so that I don't have to close the file object
f.write(text.value)
# Now, I bind the text object to the function when the on_submit action is done
text.on_submit(handle_submit)
text
P.S.: you can't see the text box above, because it disappears once you submit the text, but you can see it in the picture at the beginning of this post.
Watch the code in the notebook viewer
https://nbviewer.jupyter.org/urls/dl.dropbox.com/s/m67fkzrh0bgtgw7/ipywidgets.ipynb
Download the notebook
https://www.dropbox.com/s/m67fkzrh0bgtgw7/ipywidgets.ipynb?dl=0
Comments
Post a Comment