diff --git a/browser/README.md b/browser/README.md new file mode 100644 index 0000000..ef96742 --- /dev/null +++ b/browser/README.md @@ -0,0 +1,16 @@ +# Mooseache — How web browsers would be if they'd just been invented. + +This is an example web browser built with Python and Qt. Using the +QtWebEngineWidgets system introduced in Qt5.6, this provides a single-window +browsing experience with the usual controls, as well as saving and loading HTML. + +![Browser](screenshot-browser.png) + +> If you think this example app is neat and want to learn more about +PyQt in general, [take a look at my ebook & online course +"Create Simple GUI Applications"](https://martinfitzpatrick.name/create-simple-gui-applications) +which covers everything you need to know to start building your own applications with PyQt. + +## Other licenses + +Icons used in the application are by [Yusuke Kamiyaman](http://p.yusukekamiyamane.com/). diff --git a/browser_tabbed/README.md b/browser_tabbed/README.md new file mode 100644 index 0000000..05c3478 --- /dev/null +++ b/browser_tabbed/README.md @@ -0,0 +1,29 @@ +# Mozzarella Ashbadger — Upgrade your browsing with tabs + +Mozarella Ashbadger is the latest revolution in web +browsing! Go back and forward! Print! Save files! Get help! +(you’ll need it). Any similarity to other browsers is entirely +coincidental. + +![Browser tabbed](screenshot-browser-tabbed.png) + +> If you think this example app is neat and want to learn more about +PyQt in general, [take a look at my ebook & online course +"Create Simple GUI Applications"](https://martinfitzpatrick.name/create-simple-gui-applications) +which covers everything you need to know to start building your own applications with PyQt. + +## Code notes + +### Tabbing + +Adding tab support complicates the internals of the browser a bit, since we +now need to keep track of the currently active browser view, both to update +UI elements (URL bar, HTTPs icon) to changing state in the currently active +window, and to ensure the UI events are dispatched to the correct web view. + +This is achieved by using intermediate slots which filter events, and by +adding signal redirection (using lamba functions to keep it short). + +## Other licenses + +Icons used in the application are by [Yusuke Kamiyaman](http://p.yusukekamiyamane.com/). diff --git a/camera/README.md b/camera/README.md new file mode 100644 index 0000000..c3f0d50 --- /dev/null +++ b/camera/README.md @@ -0,0 +1,17 @@ +# NSAViewer — Somebody's watching you. + +With this webcam snapshot application you can take photos of what is currently +being viewed by your webcam. Uses the Qt QtMultimedia framework for handling +all the interaction with the camera, and supports multiple cameras if you have +them. + +![Camera](screenshot-camera.jpg) + +> If you think this example app is neat and want to learn more about +PyQt in general, [take a look at my ebook & online course +"Create Simple GUI Applications"](https://martinfitzpatrick.name/create-simple-gui-applications) +which covers everything you need to know to start building your own applications with PyQt. + +## Other licenses + +Icons used in the application are by [Yusuke Kamiyaman](http://p.yusukekamiyamane.com/). diff --git a/camera/screenshot-camera.jpg b/camera/screenshot-camera.jpg new file mode 100644 index 0000000..851a464 Binary files /dev/null and b/camera/screenshot-camera.jpg differ diff --git a/minesweeper/README.md b/minesweeper/README.md index 49414c9..62d6856 100644 --- a/minesweeper/README.md +++ b/minesweeper/README.md @@ -33,4 +33,8 @@ Here we cheat a little bit by taking the first go for the player, ensuring that it is on a non-mine spot. This allows us not to worry about the bad first move which would require us to recalculate the adjacencies. We can explain this away as the "initial exploration around the rocket" -and make it sound completely sensible. \ No newline at end of file +and make it sound completely sensible. + +## Other licenses + +Icons used in the application are by [Yusuke Kamiyaman](http://p.yusukekamiyamane.com/). diff --git a/translate/README.md b/translate/README.md new file mode 100644 index 0000000..c95fca6 --- /dev/null +++ b/translate/README.md @@ -0,0 +1,27 @@ +# Translatarrrr — Instant translation from any language to Pirate + +A translator from any language (supported by Goolge translate) to pirate. +This uses a remote API from http://api.funtranslations.com for English +to Pirate translation, and a unofficial Python wrapper around Google translate +for other languages to English. + +![Translatarrrr](screenshot-translate1.jpg) + +The *to English* part uses a Python library built on the web interface, +rather than an official API client since it's a faff to set up + non-free. +This means this part of the application is not guaranteed to work. + +![Translatarrrr](screenshot-translate2.jpg) + +The *to Pirate* part uses a public API that is heavily throttled. You'll +usually get about 5 translations before the limit kicks in. You can +pay for an API key to get more. + +This is, therefore, very useless. + +> If you think this example app is neat and want to learn more about +PyQt in general, [take a look at my ebook & online course +"Create Simple GUI Applications"](https://martinfitzpatrick.name/create-simple-gui-applications) +which covers everything you need to know to start building your own applications with PyQt. + + diff --git a/unzip/README.md b/unzip/README.md new file mode 100644 index 0000000..78f54d6 --- /dev/null +++ b/unzip/README.md @@ -0,0 +1,34 @@ +# 7Pez — the best/worst Unzip application ever created + +Unzip your files with a cat. Drag-drop your zip file onto the floaty +cat, and fill up it's Pez-file repository. Press the head to release +the Pez (your files) into the same folder. + +When you open the application the catty Pez dispenser is empty. + +![Unzip](screenshot-unzip1.jpg) + +Simply drag and drop your .zip file onto the cat to fill it up with Pez. + +![Unzip](screenshot-unzip2.jpg) + +The press the cat's head to release the Pez. + +> If you think this example app is neat and want to learn more about +PyQt in general, [take a look at my ebook & online course +"Create Simple GUI Applications"](https://martinfitzpatrick.name/create-simple-gui-applications) +which covers everything you need to know to start building your own applications with PyQt. + + +## Code notes + +### Pez + +If you know anything about Pez you'll know this application has it the wrong +way around. That's because I remembered it wrong, thinking that you pressed +the head of a Pez dispenser to make it drop Pez out the bottom. + +Originally the intention was to make you press the head once for every file +you wanted to release, but that was excruciating. It's bad enough as it is. + + diff --git a/weather/README.md b/weather/README.md new file mode 100644 index 0000000..674953c --- /dev/null +++ b/weather/README.md @@ -0,0 +1,16 @@ +# Raindar — A weather forecase app built in PyQt. + +Get your daily weather and 15hr forecast. Data is provided by the free +weather and forecast API from https://openweathermap.org/ + +![Weather](screenshot-weather.png) + +> If you think this example app is neat and want to learn more about +PyQt in general, [take a look at my ebook & online course +"Create Simple GUI Applications"](https://martinfitzpatrick.name/create-simple-gui-applications) +which covers everything you need to know to start building your own applications with PyQt. + +## Other licenses + +Icons used in the application are by [Yusuke Kamiyaman](http://p.yusukekamiyamane.com/). +They were renamed to match codes generated by OpenWeatherMap. diff --git a/wordprocessor/README.md b/wordprocessor/README.md new file mode 100644 index 0000000..e623b36 --- /dev/null +++ b/wordprocessor/README.md @@ -0,0 +1,22 @@ +# Megasolid Idiom — A rich text editor in PyQt + +The word processor for all your small, poorly formatted documents. +An extension of the notepad, again using a QTextEdit but with rich +text editing enabled. + +The editor supports multiple fonts, styles and paragraph text alignment. +There is also support for drag-drop of images, which are automatically +opened and embedded. + +Saves and opens HTML format documents. + +![Wordprocessor](screenshot-wordprocessor.jpg) + +> If you think this example app is neat and want to learn more about +PyQt in general, [take a look at my ebook & online course +"Create Simple GUI Applications"](https://martinfitzpatrick.name/create-simple-gui-applications) +which covers everything you need to know to start building your own applications with PyQt. + +## Other licenses + +Icons used in the application are by [Yusuke Kamiyaman](http://p.yusukekamiyamane.com/).