diff --git a/.gitignore b/.gitignore index e32205a..bf8697b 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,6 @@ dist # Database *.db *.sqlite + +# Misc +*.autosave diff --git a/browser/screenshot-browser.jpg b/browser/screenshot-browser.jpg new file mode 100644 index 0000000..b9f3048 Binary files /dev/null and b/browser/screenshot-browser.jpg differ diff --git a/browser_tabbed/screenshot-browser-tabbed.jpg b/browser_tabbed/screenshot-browser-tabbed.jpg new file mode 100644 index 0000000..12e3302 Binary files /dev/null and b/browser_tabbed/screenshot-browser-tabbed.jpg differ diff --git a/calculator/screenshot-calculator.jpg b/calculator/screenshot-calculator.jpg new file mode 100644 index 0000000..cc087f7 Binary files /dev/null and b/calculator/screenshot-calculator.jpg differ diff --git a/currency/README.md b/currency/README.md index 09d4573..8492473 100644 --- a/currency/README.md +++ b/currency/README.md @@ -5,7 +5,7 @@ for data. The default setup shows currency data for the preceding 180 days. ![Doughnut](screenshot-currency1.png) -Data is loaded progressively, with increasing resolution. Currency rates for a given data are shown in the right +Data is loaded progressively, with increasing resolution. Currency rates for a given date are shown in the right hand panel and updated to follow the position of the mouse. ![Doughnut](screenshot-currency2.png) @@ -17,7 +17,7 @@ which covers everything you need to know to start building your own applications ## Code notes -# Data handling +### Data handling The interface presents a tracking plot (using PyQtGraph) of rates over the past 180 days. Since we don't want to spam a free service, requests to the API are rate-limited to 1-per-second, giving a full-data-load time of 180s (3 min). @@ -27,10 +27,10 @@ requests. The requests for data use a progressive 'search' approach: where there point is filled first, and it prefers to load the most recent timepoints first. This means the whole plot gradually increases in resolution over time, rather than working backwards only. -# Conversions +### Conversions By default the app retrieves EUR rates and shows conversions to this base currency. If you change base currency it will retrieve all data again for that new currency. This is daft, since if we have rates vs. EUR we can calculate -any other currency->currency conversion via EUR (with a potential loss of accuracy). +any other currency->currency conversion via EUR (with a small loss of accuracy). diff --git a/currency/screenshot-currency1.jpg b/currency/screenshot-currency1.jpg new file mode 100644 index 0000000..8680dc7 Binary files /dev/null and b/currency/screenshot-currency1.jpg differ diff --git a/currency/screenshot-currency2.jpg b/currency/screenshot-currency2.jpg new file mode 100644 index 0000000..d5583a4 Binary files /dev/null and b/currency/screenshot-currency2.jpg differ diff --git a/mediaplayer/README.md b/mediaplayer/README.md new file mode 100644 index 0000000..69ca35d --- /dev/null +++ b/mediaplayer/README.md @@ -0,0 +1,21 @@ +# Failamp — Simple mediaplayer build in PyQt + +Simple app to listen to and watch videos and audio files, +with built in playlist. Uses QtMultimedia and QtMultimediaWidgets +to handle playback and manage the playlist. + +The main interface offers a playlist window in which you can drag-drop +media files to be played. Standard media controls are provided, along +with a timeline scrub widget and a volume control. + +![Mediaplayer](screenshot-mediaplayer1.png) + +For video playback you can pop out an external video viewer window +which floats on top. + +![Mediaplayer](screenshot-mediaplayer2.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. diff --git a/mediaplayer/screenshot-mediaplayer1.jpg b/mediaplayer/screenshot-mediaplayer1.jpg new file mode 100644 index 0000000..86090a2 Binary files /dev/null and b/mediaplayer/screenshot-mediaplayer1.jpg differ diff --git a/mediaplayer/screenshot-mediaplayer2.jpg b/mediaplayer/screenshot-mediaplayer2.jpg new file mode 100644 index 0000000..053ff56 Binary files /dev/null and b/mediaplayer/screenshot-mediaplayer2.jpg differ diff --git a/minesweeper/screenshot-minesweeper1.jpg b/minesweeper/screenshot-minesweeper1.jpg new file mode 100644 index 0000000..1a0bef8 Binary files /dev/null and b/minesweeper/screenshot-minesweeper1.jpg differ diff --git a/minesweeper/screenshot-minesweeper2.jpg b/minesweeper/screenshot-minesweeper2.jpg new file mode 100644 index 0000000..246751c Binary files /dev/null and b/minesweeper/screenshot-minesweeper2.jpg differ diff --git a/notepad/screenshot-notepad.jpg b/notepad/screenshot-notepad.jpg new file mode 100644 index 0000000..e55bc90 Binary files /dev/null and b/notepad/screenshot-notepad.jpg differ diff --git a/notes/README.md b/notes/README.md index 240da3c..7eea5f9 100644 --- a/notes/README.md +++ b/notes/README.md @@ -5,6 +5,9 @@ are stored locally in a SQLite database. ![Brown note](screenshot-notes.png) +This app is very simple, but demonstrates creation of decoration-less windows in PyQt. Removing the window +decorations removes the means to drag windows around, so we must re-implement this behaviour ourselves. + > 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) diff --git a/notes/screenshot-notes.jpg b/notes/screenshot-notes.jpg new file mode 100644 index 0000000..f1079a6 Binary files /dev/null and b/notes/screenshot-notes.jpg differ diff --git a/paint/screenshot-paint1.jpg b/paint/screenshot-paint1.jpg new file mode 100644 index 0000000..87b93b2 Binary files /dev/null and b/paint/screenshot-paint1.jpg differ diff --git a/paint/screenshot-paint2.jpg b/paint/screenshot-paint2.jpg new file mode 100644 index 0000000..40746f5 Binary files /dev/null and b/paint/screenshot-paint2.jpg differ diff --git a/solitaire/screenshot-solitaire1.jpg b/solitaire/screenshot-solitaire1.jpg new file mode 100644 index 0000000..97527e8 Binary files /dev/null and b/solitaire/screenshot-solitaire1.jpg differ diff --git a/solitaire/screenshot-solitaire2.jpg b/solitaire/screenshot-solitaire2.jpg new file mode 100644 index 0000000..f352dce Binary files /dev/null and b/solitaire/screenshot-solitaire2.jpg differ diff --git a/translate/screenshot-translate1.jpg b/translate/screenshot-translate1.jpg new file mode 100644 index 0000000..8f17bcf Binary files /dev/null and b/translate/screenshot-translate1.jpg differ diff --git a/translate/screenshot-translate2.jpg b/translate/screenshot-translate2.jpg new file mode 100644 index 0000000..ec2c6e3 Binary files /dev/null and b/translate/screenshot-translate2.jpg differ diff --git a/unzip/screenshot-unzip1.jpg b/unzip/screenshot-unzip1.jpg new file mode 100644 index 0000000..a519f50 Binary files /dev/null and b/unzip/screenshot-unzip1.jpg differ diff --git a/unzip/screenshot-unzip2.jpg b/unzip/screenshot-unzip2.jpg new file mode 100644 index 0000000..81e8f29 Binary files /dev/null and b/unzip/screenshot-unzip2.jpg differ diff --git a/weather/screenshot-weather.jpg b/weather/screenshot-weather.jpg new file mode 100644 index 0000000..766cc83 Binary files /dev/null and b/weather/screenshot-weather.jpg differ diff --git a/wordprocessor/screenshot-wordprocessor.jpg b/wordprocessor/screenshot-wordprocessor.jpg new file mode 100644 index 0000000..28d7e14 Binary files /dev/null and b/wordprocessor/screenshot-wordprocessor.jpg differ