2010-03-19 4 views
5

tôi đang viết một ide sử dụng qt (trên C++) và tôi cần phải thêm tính năng tự động hoàn tất để nólàm thế nào để thực hiện hoàn thành mã trong qt

vì vậy tôi muốn biết:

làm thế nào để làm điều đó (tôi đang sử dụng qtPlainTextEdit)?

cấu trúc dữ liệu nào tôi nên sử dụng?

Trả lời

8

Tôi nghĩ bạn nên xem xét điều này:
http://qt-project.org/doc/qt-4.8/tools-customcompleter.html

tôi sử dụng ví dụ này để hiểu CodeCompletion và tôi nghĩ rằng đó là tốt :)

[sửa] Qt có một lớp riêng cho mục đích đó được gọi là QCompleter: http://qt-project.org/doc/qt-4.8/qcompleter.html

+0

Liên kết trên bị hỏng. Liên kết hiện hoạt hiện tại - http://doc.qt.io/qt-5/qtwidgets-tools-customcompleter-example.html – akashrajkn

1

Đó là một tính năng phức tạp. Tôi sẽ xem nó được thực hiện như thế nào trong the Qt Creator.

3

Tôi cũng cần viết mã hoàn chỉnh trong Qt và liên kết đầu tiên mà Tobias cung cấp là tài liệu để xem. Nó là toàn diện và rõ ràng và làm việc cho tôi. Tôi chắc chắn sẽ làm việc cho bạn.

Nếu bạn cần một Completer mã trong lineEdit, nó khá đơn giản (từ tài liệu QCompleter):

QStringList wordList; 
wordList << "one" << "two" << "three" << "four" << "five"; 
QLineEdit *lineEdit = new QLineEdit(this); 

QCompleter *completer = new QCompleter(wordList, this); 
lineEdit->setCompleter(completer); 

Tuy nhiên một QPlainTextEdit, hoặc QTextEdit không có một chức năng thành viên built-in setCompleter() để bạn phải làm theo hướng dẫn custom code completer.

+0

Nó hoạt động với tôi, cảm ơn sự bổ sung của bạn. – Radi