Creating a tabbed, tree-view text-editor using Qt
Page |
1 |
Greetings!
Before I create an IDE using Qt, I thought I’d create a much simpler project, a text-editor. Most of the features from this I’ll port over to my IDE.

A few notes on the mockup, there will be close buttons on the tabs, and clicking the folder in the filesystem-tree will open all *.txt in that directory, and show all *.txt in the sidebar.
Any tips on how to get started with this?
Thank you,
Alec Taylor
NOTE: Yesterday I found a good text-editor tutorial (http://doc.qt.nokia.com/latest/gettingstartedqml.html), so maybe just a tutorial for the other features?
16 replies
couple links for you to get started:
http://developer.qt.nokia.com/wiki/Books_and_Links_for_learning_C_and_advanced_topics
http://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip
http://doc.qt.nokia.com/4.7/qtreewidget.html
http://doc.qt.nokia.com/4.7/qtabbar.html
http://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip
You can also download the examples of this book from the net (I do not remember the address just google it and you will find the site of the second edition) which practically contains all building block you need for this text editor (and even for the IDE).
Hmm, thanks for the book/tutorial suggestions.
I downloaded the 2nd edition and am scanning through it as we speak, if it has enough useful things, I’ll purchase it.
In the meantime, and with your help, I’ll be collating the major classes/keywords I’ll be using for my project.
Current list;
- QTextStream
- QTextEdit
- QTreeWidget
- QTabBar ⊕ CLTab
- QDockWidget
- QTreeView
- QDirModel
I downloaded the 2nd edition and am scanning through it as we speak, if it has enough useful things, I’ll purchase it.
I have read it through it was really useful, but keep in mind (as it is mentioned here [developer.qt.nokia.com] too) it was written for 4.3 and it is a bit outdated (not too much, so it is still very good for learning)
I do want Syntax Highlighting, but I thought writing that myself would be best. – Also, not including it in my text-editor version, only in my IDE version.
Qt use Scintilla based highlighter which is really good. I am not sure it is worth to write a new one (except want to have something different from the current mainstream solutions)
Current list; […]
- QTreeWidget
[…]- QTreeView
- QDirModel
You shouldn’t use QDirModel [doc.qt.nokia.com] (it’s obsolete) – you should use QFileSystemModel [doc.qt.nokia.com] instead. Also you’ve put down QTreeView and QTreeWidget. You probably won’t need them both. Read more about model/view concept [doc.qt.nokia.com] in Qt.
When should QML be used, and why isn’t my project a good platform for QML?Updated list;
- QTextStream
- QTextEdit
- QTreeWidget
- QTabBar ⊕ CLTab
- QDockWidget
- QTreeView
- QFileSystemModel
- QTreeWidget
In the link of your first thread,
here : http://doc.qt.nokia.com/latest/gettingstartedqml.html
There is one topic ,extending QML code using C++ , means you can add and take the advantage of C++ feature in QML code.
Updated list;[…]
- QTreeWidget
[…]- QTreeView
[…]
As maciek wrote above, these two are usually not required together as they provide almost the same functionality, but you can use your own model with QTreeView. As you want to use it for directory listing from which you can easily create a model I beleive QTreeView is better for you
As VCsala say you can use QScintilla for syntax highlight, it is very good convenient tool for text-editor creation. You can know more here [riverbankcomputing.co.uk]
Thanks, I’ll see what I can put together.
I’ve already got the base application working; just need to add my custom features. I’ve followed your suggestion and am using QScintilla2 instead of TextEdit.
Please continue to help me gain the information necessary to complete this project.
Best regards,
Alec Taylor
BTW: The latest thread is — http://developer.qt.nokia.com/forums/viewthread/2924/
You must log in to post a reply. Not a member yet? Register here!






