Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Creating a Mindmap program
#1
Hello !

To go forward in my programming journey I'd like to start some serious practice by creating a mindmap program (https://en.wikipedia.org/wiki/Mind_map).
The short term goal is obviously to cement the basics of programming and learn more stuff along the way. But I'd also like this to fit into a larger project of mine that includes this program which will interact with other things that will be implemented later on.

Are there any modules that would be a good fit for this ? There are several aspects to consider:
  • The nodes and branches: dynamic geometric shapes
  • Text formatting
  • Images/Icons
  • Links to files and folders

Would tkinter be useful for this ? I started looking into it a few days ago and read about a canvas widget.
Any tips to go about this are welcome.

PS: I also started to learn HTML/CSS in parallel with python, if this could be of any use.
Reply
#2
Being frustrated with mind maps, I once did a mind outline program. It was just an outline, not a full graph. Each node was just text, I think I limited it to at most a sentence. Then I made a tkinter GUI that showed the outline, but only a limited number of levels. So it would show one item in the outline, the children under it, and maybe the children under those. How deep it went was limited by how many children there were, it wouldn't go deeper than it could show on the screen at one time. If you clicked on the child, that made it the new top item in the display, showing it's children. If you clicked on the top item, it's parent became the top item. That way you could navigate through the outline. If you double clicked on an item, you could add a new child to it.

I think that would be a good start to a larger mind map program. Once you got that working, you could add formatting, icons, and links. Then maybe you could change the interface to allow for a more general graph, with links across the tree of the outline.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures
Reply
#3
(Apr-06-2019, 03:44 PM)ichabod801 Wrote: Being frustrated with mind maps, I once did a mind outline program. It was just an outline, not a full graph. Each node was just text, I think I limited it to at most a sentence. Then I made a tkinter GUI that showed the outline, but only a limited number of levels. So it would show one item in the outline, the children under it, and maybe the children under those. How deep it went was limited by how many children there were, it wouldn't go deeper than it could show on the screen at one time. If you clicked on the child, that made it the new top item in the display, showing it's children. If you clicked on the top item, it's parent became the top item. That way you could navigate through the outline. If you double clicked on an item, you could add a new child to it.

I think that would be a good start to a larger mind map program. Once you got that working, you could add formatting, icons, and links. Then maybe you could change the interface to allow for a more general graph, with links across the tree of the outline.

Same here ! I use Freemind and while it's pretty good, some aspects of it drive me crazy. The lack of a simple rectangular selection being just one example ! You also can't change the shapes of the nodes etc ...
The text editing is pretty neat though, with html.
Generally speaking it is quite outdated and not really pretty to look at.

Would you mind telling/showing me how you proceeded ? Is there a repository somewhere ?
I'm really at a loss about how to go forward with this.

One of the things that troubles me for example is that say I choose to use tkinter to start with a basic version and I go forward with it for some time. What if after a while I discover it's too limited to make something more complex and all along there was a better tool to achieve this ? Do I have to start everything over again ?

Sorry if these questions seem a bit silly. I got into programming relatively recently and only practiced with simple examples from tutorials and books.
Reply
#4
(Apr-06-2019, 04:01 PM)J_Miller Wrote: Would you mind telling/showing me how you proceeded ? Is there a repository somewhere ?
I'm really at a loss about how to go forward with this.

I don't remember very well. I did this years ago when I was bored at work, and it got lost in the shuffle when work went insane. I just checked the cd of files I took when I left that job, and there's nothing on it for that project. It was very simple though, each node just saved the text and a list of children. The GUI was very simple, as well.

(Apr-06-2019, 04:01 PM)J_Miller Wrote: One of the things that troubles me for example is that say I choose to use tkinter to start with a basic version and I go forward with it for some time. What if after a while I discover it's too limited to make something more complex and all along there was a better tool to achieve this ? Do I have to start everything over again ?

The key to this sort of think it to separate the implementation from the interface. The structure that holds the contents of the mind map should not have anything to do with the GUI you build. It should just have ways for the GUI to access the information you need. If you decide you need to rewrite the GUI, you can just move the implementation code over wholesale.

That said, you clearly don't want to rewrite the whole GUI. Think carefully about what features you want to have and what the various GUI frameworks can manage. But I'm not a big GUI guy, so I'm the wrong person to ask.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  creating simplex tableau pivot program easy or difficult for a beginner in Python? alex_0 2 2,565 Mar-31-2021, 03:39 AM
Last Post: Larz60+
  creating hex dump modifying program ensoniq 3 2,629 Oct-14-2019, 08:21 AM
Last Post: Larz60+
  Creating Vector from a Program ericvrocha 3 1,883 Oct-08-2019, 07:43 AM
Last Post: newbieAuggie2019
  creating a list during program execution. hobbyprogrammer 2 2,400 Jan-26-2019, 09:06 PM
Last Post: hobbyprogrammer
  creating a username and pword program using a #def statement and #dictionary zcode12 3 3,131 Oct-14-2018, 04:41 AM
Last Post: volcano63
  Creating a program to look for the largest prime number of a number Wikki14 4 3,881 Sep-08-2018, 12:30 AM
Last Post: Skaperen
  Creating a schedule program ndplokkaar 4 3,945 Nov-23-2017, 04:21 PM
Last Post: ndplokkaar
  Creating a program that records speed in a speed trap astonavfc 7 7,314 Nov-07-2016, 06:50 PM
Last Post: nilamo

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020