2011-07-13 33 views
7

Tôi đang chuyển ứng dụng Qt sang Mac OS X. Trên Windows/Linux, tôi đã sử dụng QLineEdit để cung cấp tính năng tìm kiếm trong menu Trợ giúp.Qt trên Mac - cách truy cập "tìm kiếm" trong menu trợ giúp

Trong Mac OS X, tôi thấy một cái gì đó như thế này là built-in: enter image description here

Làm thế nào tôi có thể truy cập vào thanh tìm kiếm này với Qt (ví dụ, thêm các yếu tố của riêng tôi để nó)? Tôi đã xem QMenuBar trong tài liệu nhưng không thể tìm thấy bất cứ điều gì có liên quan. Nếu không thể, ít nhất tôi có thể sử dụng một số API gốc từ ứng dụng C++ Qt của tôi?

Cảm ơn rất nhiều.

+5

+1 để quan tâm đến việc cung cấp trải nghiệm nhất quán trên nền tảng. –

Trả lời

3

Dường như bạn không thể thực hiện điều này trực tiếp thông qua Qt, tuy nhiên, bạn có thể triển khai tính năng này trong Objective-C++/Cocoa.

Có thể thông qua phương pháp - registerUserInterfaceItemSearchHandler NSApplication để đăng ký chức năng tùy chỉnh cho truy vấn và trả lại các mục tìm kiếm.

QtHelp dường như có hỗ trợ lập chỉ mục tự động, có nghĩa là bạn có thể ủy nhiệm tìm kiếm cho điều đó.

4

Đây là trường tìm kiếm Spotlight For Help, được kiểm soát hoàn toàn bởi hệ thống. Nó tự động cung cấp kết quả từ sổ Trợ giúp và các mục menu của ứng dụng của bạn. AFAIK bạn không thể cư trú nó "bằng tay". Nó hoạt động tự động khi bạn tạo một cuốn sách trợ giúp cho ứng dụng của bạn.

Xem Apple Help Concepts: The Help Menu.

+0

Đã gửi cho bạn +1, có vẻ như đây là lựa chọn duy nhất của tôi. Tôi sẽ chờ đợi một ngày có thể để xem nếu không có một cách để làm điều đó trực tiếp từ chương trình, nếu không tôi sẽ chấp nhận điều này. – houbysoft

+1

vừa phát hiện ra rằng trong ứng dụng Terminal, menu trợ giúp cũng hiển thị các trang của người dùng. Hãy thử gõ 'man' vào trường tìm kiếm tiêu điểm trong Terminal. Sau đó, nếu bạn click vào nó nó sẽ mở ra một cửa sổ terminal mới hiển thị trang man. Vì vậy, có vẻ như nó có thể được điền bằng tay? Các trang người đàn ông không có trong Sách trợ giúp cũng như các mục menu. – houbysoft

+0

Hmm, rất hấp dẫn! Xin lỗi, tôi không biết đó có phải là API công khai hay không. – deceze

3

Nếu bạn thêm menu Trợ giúp vào ứng dụng của mình, Qt sẽ tự động thêm hộp tìm kiếm. Xem http://doc.qt.io/qt-4.8/mac-differences.html#menu-bar

+0

Có, nó được thêm tự động, nhưng những gì tôi cần là để thêm các mục của riêng tôi vào nó - có vẻ như tôi phải tạo ra một cuốn sách trợ giúp theo câu trả lời của lừa dối dưới đây. Ngay bây giờ nó chỉ tìm kiếm trong các mục menu. – houbysoft

1

Bạn có thể thoát khỏi menu Tìm kiếm Mac OSX thêm vào menu Trợ giúp chỉ đơn giản bằng cách gọi menu khác. Chỉ cần thêm một không gian:

QMenu *helpMenu = menuBar()->addMenu(" Help")); 

sẽ hoạt động.

Các vấn đề liên quan