Bất cứ khi nào tôi sử dụng hộp thoại trình chỉnh sửa tín hiệu/khe, tôi phải chọn từ danh sách các vị trí hiện có. Vì vậy, câu hỏi đặt ra là làm cách nào để tạo một vị trí được đặt tên tùy chỉnh?Làm cách nào để tạo một vị trí tùy chỉnh trong thiết kế qt4?
Trả lời
Thật không may điều này là không thể trong Qt4.
Trong Qt3, bạn có thể tạo các vị trí tùy chỉnh, nơi mà sau đó được triển khai trong tệp ui.h. Tuy nhiên, Qt4 không sử dụng tệp này để các vùng tùy chỉnh không được hỗ trợ.
Có một số cuộc thảo luận về vấn đề này trên trên QtForum
này dường như không thể theo một cách đơn giản.
Nhà thiết kế chỉ cho phép bạn quảng cáo các tiện ích hiện có cho tiện ích con tùy chỉnh của riêng bạn. nhưng nó không cho phép bạn kết nối các tín hiệu và các khe của lớp của các widget được quảng cáo.
Cách này có thể là tạo plugin cho trình thiết kế là described here và trong các trang theo dõi nó.
Hành động bình thường là quảng bá tiện ích con cho lớp học của riêng bạn và sau đó kết nối tiện ích theo cách thủ công trong mã của riêng bạn. quá trình này được mô tả here
Không thể làm điều đó, bởi vì điều đó có nghĩa là bạn sẽ thêm một vị trí vào một lớp Qt hiện có như QPushButton
mà thực sự không phải là cách để thực hiện.
Bạn nên tạo riêng của mình QWidget
cuối cùng bằng cách phân lớp con hiện có. Sau đó tích hợp nó vào Qt Designer như một plugin như được đề xuất. Có lớp của riêng bạn cho phép bạn thêm/modifiy các tín hiệu/khe có sẵn như bạn muốn.
Đừng quên các tính năng tự động kết nối vị trí. Có một vài nhược điểm, như phải đổi tên chức năng của bạn nếu bạn đổi tên tiện ích của mình, nhưng chúng tôi sử dụng chúng rất nhiều ở công ty của tôi.
bạn có thể sử dụng định dạng khe kỳ diệu của
void on_objectName_signal() {
// slot code here, where objectname is the Qt Designer object name
// and the signal is the emission
}
Kết nối với phương pháp này được thành lập theo phương pháp connectSlotsByName và bất cứ khi nào các tín hiệu được phát ra, khe cắm này được gọi.
Điều này dường như có thể xảy ra trong phiên bản Qt Designer 4.5.2, nhưng không thể được thực hiện từ tiện ích con Dock/Slot Editor trong cửa sổ chính.
Đây là những gì làm việc cho tôi
- Đổi thành Edit Signals/Slots chế độ (F4)
- Kéo và thả từ widget mà là để phát ra tín hiệu, để các phụ tùng mà là để nhận tín hiệu.
- Hộp thoại Định cấu hình kết nối xuất hiện, hiển thị tín hiệu cho tiện ích phát ra và các vị trí cho tiện ích nhận. Nhấp vào Chỉnh sửa ... bên dưới cột vị trí ở bên phải. Hộp thoại
- A Tín hiệu/khe của ReceivingWidget xuất hiện. Tại đây, bạn có thể nhấp vào biểu tượng dấu cộng bên dưới các vị trí để thêm một vị trí mới của bất kỳ tên nào.
- Sau đó, bạn có thể quay lại và kết nối với khe mới của mình trong hộp thoại Định cấu hình kết nối hoặc thực sự trong Trình chỉnh sửa tín hiệu/khe cắm dockwidget trở lại trong cửa sổ chính.
Nên biết trước: Tôi đang sử dụng PyQt, và tôi đã chỉ cố gắng sử dụng khe cắm bổ sung theo cách này từ Python, không phải từ C++, vì vậy mileage của bạn có thể thay đổi ...
Cả hai nút "Chỉnh sửa ..." trong hộp thoại Định cấu hình kết nối luôn chuyển sang màu xám cho tôi. – James
Nút chỉnh sửa trong Định cấu hình kết nối bị tắt. Bạn đã nhấp vào nút đó như thế nào? –
Tôi cũng có các nút màu xám nhưng cuối cùng cũng nhận thấy rằng nếu tôi kết nối Tín hiệu với cửa sổ chính, tôi có thể thêm các khe bằng cách sử dụng phương pháp được đưa ra ở đây. Dường như làm việc như mong đợi nhưng có nghĩa là bạn nhận được rất nhiều phương pháp trong cửa sổ chính thay vì trong các tiện ích riêng lẻ. –
Có lẽ nó sẽ Cứu giúp.
Theo mặc định, bạn phải chọn từ danh sách các vị trí hiện có. Nhưng bạn có thể thêm khe bằng cách nhấp chuột phải vào đối tượng trong danh sách ở bên phải của nhà thiết kế và chọn "vị trí/tín hiệu" và thêm vị trí/tín hiệu tùy chỉnh của bạn. Sau đó, bạn có thể chọn nó trong trình soạn thảo tín hiệu/khe.
nhấp vào widget bằng cách nút phải
thúc đẩy widget vào một lớp học mà bạn định nghĩa
nhấp vào widget bằng cách nút phải một lần nữa
bạn sẽ thấy tín hiệu đó và khe cắm có thể chỉnh sửa
nhấp chuột phải vào cửa sổ chính và chọn "thay đổi tín hiệu và vị trí" và thêm một vị trí mới. Nó sẽ xuất hiện trong trình chỉnh sửa vị trí tín hiệu của bạn.
Đây là câu trả lời hay nhất. –
Đây phải là câu trả lời được chấp nhận. – arainone
tôi có thể làm điều đó bằng cách:
Trong MainWindow.h, thêm dòng:
public slots:
void example();
trong lớp MainWindow.
Trong MainWindow.cpp
void MainWindow::example() {
<code>
}
- 1. Làm cách nào để bật hỗ trợ thiết kế trong điều khiển tùy chỉnh?
- 2. cmake add_library tại một vị trí tùy chỉnh
- 3. Làm cách nào để tùy chỉnh vị trí của các phần tử chú giải?
- 4. UIControl tùy chỉnh phân lớp thiết lập vị trí trong IB cho iOS
- 5. Làm cách nào để thiết kế một lớp bằng Python?
- 6. Làm cách nào để thiết kế thử nghiệm đơn vị để tạo tài liệu PDF?
- 7. Kiểm soát vị trí của trình thiết kế trang
- 8. làm cách nào để tạo plugin tùy chỉnh (widget) cho nhà thiết kế qt với cmake (và visual studio)
- 9. Thiết kế TabPage tùy chỉnh trong C# WinForms?
- 10. Cách tùy chỉnh vị trí của hộp cảnh báo
- 11. Làm thế nào để tùy chỉnh UIRefreshControl với hình ảnh và vị trí khác nhau?
- 12. Làm thế nào để thiết lập vị trí của "JOptionPane.showMessageDialog"
- 13. Tuỳ chỉnh thiết kế cho một Control
- 14. Có thể thiết kế trực quan thành phần tùy chỉnh tại thời điểm thiết kế không?
- 15. cmake - find_library - vị trí thư viện tùy chỉnh
- 16. UINavigationBar tùy chỉnh với chiều cao tùy chỉnh khiến cho UIBarButtonItem bị sai vị trí
- 17. Làm cách nào để tạo loại đầu vào tùy chỉnh?
- 18. Làm cách nào để tạo Hộp thoại tùy chỉnh 100%
- 19. Làm thế nào để thiết lập vị trí văn bản xuống dưới trong TextField
- 20. Không thể thả hoạt động quy trình làm việc tùy chỉnh cho TFS2010 trong quá trình tạo mẫu tùy chỉnh
- 21. tùy chỉnh table_name cho người dùng bảng với thiết kế
- 22. Tạo một OnClickListener tùy chỉnh
- 23. rails.vim và bộ điều khiển tùy chỉnh vị trí
- 24. Làm cách nào để có được tài liệu thiết kế?
- 25. Làm cách nào để tạo kiểu tùy chỉnh trong cơ sở dữ liệu quan hệ?
- 26. Vị trí @PropertySource tùy chọn
- 27. Tôi làm cách nào để UnitTest một ActionFilter tùy chỉnh?
- 28. Làm thế nào để thiết kế một lớp DAO?
- 29. Làm cách nào để thay đổi vị trí khung cho tùy chọn MKAnnotationView?
- 30. Làm cách nào để tạo một lớp danh sách tùy chỉnh trong python?
Các nhà thiết kế qt4 hỗ trợ đọc khe tùy chỉnh được tạo ra trong các hình thức chuyển từ qt3. Nó đã cho tôi ấn tượng rằng nó cũng có thể tạo ra nó. – user24560
Xem bình luận của raigon dưới đây, điều này hiện có thể. – OliJG