Comments (8)
Let me know if you want me to have a crack at any of these!
from tksheet.
Hi! CalJaDavs's alternate account here.
Hey, thanks for the screenshot, that’s a nice looking UI, did you use ttk styles? How did you manage to change the scroll bar too?
Thanks, full credit to @rdbende for figuring out most of this, check out his repos to see how a lot of this stuff works. Tkinter runs on a Tcl backend, so knowing how all that stuff works is pretty powerful. Its how I was able to code in the closeable notebook tabs and some other more specialized widgets not shown here.
Ohh, wow. Is that a custormized Azure ttk theme? I love the colors 😍
Hey! I knew you were lurking around here! Full credit where its due, many of the assets were ripped from your sun-valley theme. I just painstakingly broke them down into a series of layered greyscale bitmaps so that I could change them to any colours I liked. I might tidy up the little UI designer thingy I made to do this and push it someday. Especially if it is something you might be interested in including on one of your repos.
any idea at the moment what the dict key would be for cell_options
Hmmmm. Not yet, but I have some idea of the functionaility I'd like to see. A range is an area on the sheet bounded by two vertices (corner cells) with all cells falling between them included in the range. This area can expand or shrink as rows/columns are added/removed. Named cells are simply a one-cell named range, and named columns/rows are just ranged that sit within column named range.
from tksheet.
any idea at the moment what the dict key would be for cell_options for example
@CalJaDav Hey btw don't worry about answering this question, I don't think it would work in cell options anyway, I'll figure this out, it just might be a while until I get around to doing a release with it
Thanks, full credit to @rdbende for figuring out most of this, check out his repos to see how a lot of this stuff works. Tkinter runs on a Tcl backend, so knowing how all that stuff works is pretty powerful. Its how I was able to code in the closeable notebook tabs and some other more specialized widgets not shown here.
Cheers!
from tksheet.
Apologies for posting half written comments btw, I keep pressing shift-enter instead of enter, I'll blame this Drambuie.
from tksheet.
Thanks, at the moment the library is undergoing some big changes so I'll let you know when they're done, afterwards work can continue on adding new features
from tksheet.
Great! I have some features I am planning on adding, I'll list them below and get your thoughts:
-
Named Ranges. Fairly straightforward to implement, this would add an additional named range/cell/row/column parameter to cell options which would allow users to specify an area on the table that can be referenced and by calling the name. This would move with the table as columns./rows are added and ranges would expand if rows/columns are inserted within their bounds.
-
Text wrapping. I have already implemented a test build of this and it is pretty straight forward. One small thing I have noticed is that purely pythonic text wrappers are a little slow and this does mean we get a minor (and I do mean quite minor) performance hit when very very very large numbers of wrapped cells are shown on screen at a time, since the text wrapping is calculated for every cell on screen. I have thought about implementing a binary executable (compiled Rust code) that would speed up that end of things. But that would take us away from a purely python based solution, I'd value your input on that. There are probably other ways of speeding it up, perhaps using some clever code to limit text-wrap calcs to just cells whose widths are modified on redraw, but that would involve storing wrapped data separately to the main data and I'm already getting confused... There is also a slightly more significant performance bottle neck due the new lines of text adding additional calls to the canvas draw text function that also impacts performance for large numbers of displayed cells with many lines. Although this is not something I necessarily see as being very easily solved nor is it text-wrapping specific, more a byproduct of it.
-
More events. Currently I am running a modded build of tksheet with some additional event bindings to make drawing custom sheets much easier. Event listeners are a pretty integral part of tkinter and are just so useful for making very extensible widgets. I think in addition to
<<SheetModified>>
, a<<SheetRedrawn>>
event is quite useful for updating user canvas elements alongside the sheet. I'm sure there are plenty of other places they could be added as well. I'll attach a screenshot of one of the CRUD interfaces I am currently working on that uses a modified version of tksheet with custom canvas elements to display and edit timeseries data, might be nice to see how your hard work is being used IRL.
-
Vertical alignment. Not a priority, but probably a nice-to-have. Doesn't seem super complex to implement, more just annoying to account for all the edge cases and logic.
Look forward to seeing the changes in the next build. Thanks again!
C.
from tksheet.
Hey, thanks for the screenshot, that’s a nice looking UI, did you use ttk styles? How did you manage to change the scroll bar too? :o
about the named ranges, any idea at the moment what the dict key would be for cell_options for example, don’t worry if not sure, I have to add something like this at some point anyway
About text wrapping, I will have to get back to you on this, at some point I’m going to try something which if it succeeds will mean the ability to use the native tkinter canvas text width argument and easily wrap any cell, it might not work I’m not 100% sure
Version 6.1.0 should have the redrawn event, in case you were wondering, I’d be happy to add more in the future, I haven’t added the docs yet because of the lack of data but considering the that I might not get around to that for some time I probably should do the docs
from tksheet.
Hey, that’s a nice looking UI, did you use ttk styles? How did you manage to change the scroll bar too? :o
Ohh, wow. Is that a custormized Azure ttk theme? I love the colors 😍
from tksheet.
Related Issues (20)
- How to change appereance of the Thsheet when bindings are disabled HOT 2
- In drop down, how do i display default text? HOT 1
- Is it possible to center the text in vertical alignment? HOT 1
- Include freezing option HOT 1
- Calculos con tksheet
- trouble with shifting the data over the tksheet HOT 1
- Higher resolution support HOT 9
- Add prompt for wrong keyward args in get_sheet_data/get_cell_data/get_row_data/get_column_data HOT 1
- Issue with set_sheet_data HOT 6
- Manually set displayed row index HOT 3
- Dropdown menu fails to open if some rows are hidden HOT 2
- Update cells data using specific conditions on user input. HOT 27
- SyntaxWarning HOT 3
- Currently selected cell rows in sheet vs in data HOT 2
- on Rpi5, OS debian bookworm, tksheet's sheet defined col-w & row-h of 10x16 cells size has slow/lagging mouse's cursor movement HOT 12
- How to fix the maximum size of characters in tksheet ceels HOT 6
- The tabel font does not change. HOT 1
- How to Check if a Check Box is checked in tksheet 7 HOT 1
- How to accept user input even if "enter" is not pressed HOT 4
- Looking to customize scrollbar and scrollbar frame bg HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tksheet.