December 24, 2010

AlecTaylor AlecTaylor
Lab Rat
15 posts

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.

Mockup

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

December 24, 2010

fcrochik fcrochik
Lab Rat
517 posts

If this is a desktop application you may have better luck using C++/Qt (not QML).
You will find Widgets ready to use for most of your ui.

Look in the wiki for the list of books on qt. There is one that you can download for free that should be very helpful.

 Signature 

Certified Specialist & Qt Ambassador Maemo, Meego, Symbian, Playbook, RaspberryPi, Desktop… Qt everywhere!

December 24, 2010

fcrochik fcrochik
Lab Rat
517 posts

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

 Signature 

Certified Specialist & Qt Ambassador Maemo, Meego, Symbian, Playbook, RaspberryPi, Desktop… Qt everywhere!

December 24, 2010

VCsala VCsala
Lab Rat
339 posts
fcrochik wrote:
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).

December 24, 2010

AlecTaylor AlecTaylor
Lab Rat
15 posts

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

December 24, 2010

VCsala VCsala
Lab Rat
339 posts

If you want syntax highlighting you also need QSyntaxHighlighter

December 24, 2010

VCsala VCsala
Lab Rat
339 posts
AlecTaylor wrote:
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)

December 24, 2010

AlecTaylor AlecTaylor
Lab Rat
15 posts

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.

If that’s the case, then what’s a good tutorial/book for learning how to create text-editors with Qt?

December 24, 2010

VCsala VCsala
Lab Rat
339 posts
AlecTaylor wrote:
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)

December 24, 2010

AlecTaylor AlecTaylor
Lab Rat
15 posts

Okay, well I like the colour scheme used in Notepad2, which I plan to steal for my own rendition, however I also plan to add a new colour which will highlight user made/included classes.

December 24, 2010

maciek maciek
Lab Rat
67 posts

AlecTaylor wrote:

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.

 Signature 

Earth is a beta site.

December 24, 2010

AlecTaylor AlecTaylor
Lab Rat
15 posts

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

December 24, 2010

qtrahul qtrahul
Lab Rat
188 posts

AlecTaylor wrote:
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.

December 24, 2010

VCsala VCsala
Lab Rat
339 posts

AlecTaylor wrote:
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

December 25, 2010

Vass Vass
Ant Farmer
740 posts

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]

 Signature 


Vasiliy

January 1, 2011

AlecTaylor AlecTaylor
Lab Rat
15 posts

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/

Page  
1

  ‹‹ QFile::handle() returns -1 for files in resource      Sorting QTableWidget ››

You must log in to post a reply. Not a member yet? Register here!