jarvisteach / appjar Goto Github PK
View Code? Open in Web Editor NEWSimple Tkinter GUIs in Python
Home Page: http://appJar.info
License: Other
Simple Tkinter GUIs in Python
Home Page: http://appJar.info
License: Other
Code works differently on Windows & Mac.
See the setButtonImage function, the two code snippets are there - this needs testing, and a resolution found. Either a platform decision, or a universal solution.
Need to:
The setWidth/setHeight functions on Meter don't seem to do much
OptionBox font size, bg & fg doesn't change
The Properties widget uses a new method for propagating config properties.
It overrides the config functions, and deals with the different options.
This is much better than previous methods of having multiple setters.
This should be implemented across all the container widgets:
In fact, this should be done to all classes:
Make the image folder a global variable.
Allow the user to change the folder through a set function.
Maybe auto-check an image directory, if images aren;t found in the current directory...
Weird issue, occasionally win sound fails to locate file
May be due to network shares at school - need to research...
Padding doesn't work particularly well at the moment:
Instead:
Have the choice to include a "selection" message
When getSelected is called, it should return None
Maybe just pass in an empty list item, or a dash, or have a named function?
In order to stop the GUI returning, it can be made to wait for a sound to finish playing.
This makes the UI unresponsive.
It would be better to still play the sound asynchronously, but use the UI loop to wait until it's time to return.
Options to hide and show toolbars...
Add support for changing volume...
Animated images are cached - that means if the same image is used more than once, the animation loop goes into overdrive, and if the animation is stopped - it affects all copies of that image
Set all GUIs to have appJar icon
Configure menu options help/about - to give information about appJar & link to site
The NoteBook tabs look a little old fashioned.
Would be nice to have an option to have them fill the entire row, to look more like phone apps.
Not convinced the GUI is properly receiving the focus when it starts up.
Evidence:
Not noticed on Windows, but definitely something fishy on Mac
If you set a big font for the GUI, the graphics for radio buttons& check boxes stay the same size - looks a bit rubbish.
Is there a way to make these grow in line with the font?
Option to remove a single item from an OptionBox
PNG crashes with no alphapixels
A quick-to-create set of radio/check boxes.
Quick way to create 'Shelve Interface':
Users expect a setFg function, to operate in same way as setBg...
Add 4th positioning option - rowspan
Currently, appJar supports positioning in a grid cell by row/column, and also allows a widget to span multiple columns.
There should also be the ability to span multiple rows - this is supported by the grid layout, so is just a case of introducing it to all the add functions.
Would be useful to have easy way to access a widget - so that tkinter commands can be called on it directly
Should implement a getter, in the same way setters are done.
Allow status bar to be configured as a number of labels, each one separately addressable
When rowspan is populated, sticky is still only EW
This can be overridden by user
Maybe default widgets with a rowspan to auto stick to top & bottom?
This can be done in __positionWidget()
But need to be careful not to override user settings for container/widget
See issue #38
When you set the Window BG (on Windows at least) the BG of the buttons changes too - not desired!
CB & RB align centrally in a row - is this desired?
Remove label from scale, include addLabelScale.
Change orientScaleHor - better name, and change functionality - default is horizontal, so this function's job is to make it vertical...
Look into layout of scale - is it vertically centred?
tkinter has overrideredirect which will hide/show the title bar
SpinBox items are in the opposite order to expected
So the initial action is to scroll up - not right!
Now we have rowspan, vertical separators would be useful!
Numbers crash optionBoxes - it tries to get the length of the string, but can't
SubWindow functionality needs improving:
Also, think about menu, toolbar, status bar
Set functions for ListBox, RadioButton & CheckBox use shorthand form (LB, RB, CB) - this doesn't match rest of app - should use long form version (ListBox, RadioButton, CheckBox). Should keep old versions for backwards compatibility.
When the Autoscrollbar appears on a ListBox (and probably anywhere else) it adds to the widget's width - this makes the GUI change size. Need to find a way to make it's container account for this, so that the size is consistent
Tried to put in some 'debouncing' - need to see how much it breaks other platforms...
Labels fill an entire row with their BG colour, but RB & CB don't - is this desired?
Requested Page Organiser
Simple navigation from one page to the next: FORWARD/BACK buttons at bottom/top of every page.
No BACK on pg.1 No FORWARD on last page
Then content page should fill whole app. Within frame though, so that status bar/tool bar still valid...
Some changes to menus:
The OptionBox button defaults to the width of the first item in the list.
This can cause resizing issues, if the column's width is less than the biggest item.
Currently, a fix has been added to set the width to the length of the longest item in the list. This seems to work on Mac, with the default font, but is expected to break with other fonts. Untested on Windows.
Secondly, the drop-down width is different on different platforms. Mac it mimics the button, but on Windows it is smaller than the button. Option to extend width by padding with spaces...
Potential solution here: http://stackoverflow.com/questions/33367443/optionmenu-modify-drop-down-list-width-to-match-optionmenu-width
Need to test on Windows - perhaps do different things on different platforms...
If no title is set for the app, it should default to the python file's name
On Mac, this works fine, in Windows it has the entire path - the path is meant to be removed...
ScrollPane now pretty solid - so should use for:
Therefore:
However, scrollPane has lots of components:
Do we place widgets into interior, or do widgets become interior?
Can widgets replace canvas?
Maybe, make generic ScrollContainer, then:
Need to rework setting colours:
TabbedWindow foreground states:
TabbedWindow background states:
Can change a single Tab's background
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.