2012-02-26 38 views
6

Phần thiết kế qt của người tạo qt có nhiều tiện ích được tích hợp sẵn. Nhưng giả sử tôi muốn thêm các widget tùy chỉnh được tạo trong cùng dự án qt vào tệp ui của cửa sổ. Bằng cách tham gia các bước sau:Thêm các tiện ích được tạo của người dùng vào tệp ui trong trình tạo qt

  1. Tạo một ứng dụng Qt GUI mới với một cửa sổ chính, chúng tôi sẽ gọi cửa sổ A.
  2. Thêm một widget mới cho dự án, widget chỉ sử dụng các thành phần giao diện người dùng chuẩn, nói nút. Chúng tôi sẽ gọi cho widget này B.
  3. Thêm một thể hiện của phụ tùng B để cửa sổ A.

Bây giờ, tôi biết một cách để làm điều đó, và đó là:

  1. Trong cửa sổ Một , thêm một widget trống (hoặc container widget, từ phần container của danh sách các vật dụng có thể. Chúng tôi sẽ gọi cho widget này C.
  2. Thúc đẩy nó (widget C) để phụ tùng B.

Tuy nhiên, vấn đề với điều này là nhà thiết kế Qt Creator coi nó giống như một QWidget chung. Và như vậy, bạn không thể làm những việc như thêm nó vào bộ tách, hoặc kết nối các tín hiệu/khe cắm cụ thể cho tiện ích.

Vì vậy, có cách nào khác để thêm tiện ích B vào cửa sổ A trong tệp ui bằng cách sử dụng trình tạo qt không? Cảm ơn bạn.

+2

Bạn có thể tạo tiện ích tùy chỉnh cho nhà thiết kế: http://developer.qt.nokia.com/doc/qt-4.8/designer-creating-custom-widgets.html – Lol4t0

+0

Hmm..có vẻ như tôi đã làm theo quy trình này , bất cứ ai muốn chỉnh sửa dự án này sẽ phải cài đặt plugin riêng biệt, phải không? Tôi tốt nhất là muốn có nó, nơi dự án có thể được mở ra chính nó mà không cần cài đặt một plugin, nếu đó là tất cả có thể. –

+0

@LeifAndersen Điều này sẽ không yêu cầu plugin để mở dự án, chỉ để xem và tương tác với tiện ích con mới. Tùy thuộc vào dự án và nhóm của bạn, một kho lưu trữ trung tâm cho các plugin có thể là một khả năng; đó là những gì công ty chúng tôi làm. Tôi biết không có lựa chọn khác ngoài những, tuy nhiên. –

Trả lời

1

Tôi không chắc chắn đã hiểu rõ câu hỏi của bạn để tôi có thể đặt câu hỏi sai. Bạn có chắc là tiện ích "B" của bạn là lớp con của QDesignerCustomWidgetInterface không? Điều này sẽ hiển thị tất cả nội dung mà tiện ích con/plugin của bạn cung cấp ...

Lưu ý cuối cùng: một người bạn của tôi đã cố gắng thêm tiện ích tùy chỉnh như bạn. Và vào cuối thủ tục được mô tả mà Lol4t0 đã nói với bạn, anh ta tìm thấy bạn phải biên dịch plugin với cùng trình biên dịch với qtcreator/thiết kế đã được biên dịch. Điều này xảy ra bởi vì như chúng ta biết C++ không giữ ABI khả năng tương thích (thay vì ngôn ngữ C) như: Xử lý tên có thể thay đổi từ trình biên dịch sang trình biên dịch, cách dữ liệu được tải vào thanh ghi có thể thay đổi ... và cứ thế. Bạn tôi đã cố gắng biên dịch plugin với mingw, nhưng anh ta thấy rằng qtcreator được biên dịch với trình biên dịch phòng thu trực quan. Vì vậy nếu bạn muốn triển khai plugin của bạn trên Windows hoặc bạn biên dịch plugin của bạn với studio trực quan, hoặc bạn phải biên dịch qtcreator/designer từ đầu.

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