2011-10-19 33 views
20

Tôi muốn tạo hộp nhóm chỉ hiển thị khi nút radio được chọn.
Tôi đã thực hiện điều đó bằng cách kết nối tín hiệu toggled(bool) của nút radio với khe setShown(bool) của hộp nhóm.
Vấn đề là nút radio ban đầu được bỏ chọn nhưng hộp nhóm ban đầu được hiển thị nên tôi phải chọn/bỏ chọn nút radio để biến mất.
Có cách nào tôi có thể làm cho hộp nhóm ban đầu vô hình trong Qt Creator Designer mà không cần phải làm điều đó trong mã?Điều khiển ẩn ban đầu trong Qt Creator

Trả lời

37

Bạn không thể.

Thuộc tính visible dường như bị xóa tự nguyện khỏi trình chỉnh sửa thuộc tính của Qt Designer và bạn không thể thêm lại nó.

Bạn có thể thêm tài sản một cách thủ công vào file .ui bằng cách thêm khối XML sau bên trong nút cho widget mà bạn muốn ẩn:

<property name="visible"> 
    <bool>false</bool> 
</property> 

Nhưng widget sẽ không được hiển thị hoặc di chuyển khi bạn mở lại giao diện với nhà thiết kế. Nó vẫn sẽ xuất hiện trong phân cấp widget mặc dù.

4

Bạn có thể thử chơi vòng với các thuộc tính (xem setHidden), nhưng nó dễ dàng hơn để làm điều đó trong mã.

Vì vậy, bạn muốn làm:

ui setup code 
ui->groupBox->setHidden(true) 

radio button slot 
if true ui->groupBox->setHidden(false) 
else if false ui->groupBox->setHidden(true) 

Đó là cách dễ nhất thực sự, tôi chưa bao giờ có nhiều may mắn với việc thêm các thuộc tính trong thiết kế mà Qt đã sử dụng.

+0

Tôi đã làm điều này, tôi đang tìm cách thay thế. khe tùy chỉnh là không cần thiết, 'toggled (bool)' được kết nối với 'setShown (bool)' hoạt động chính xác. – Dani

+0

Trong trường hợp đó, tôi khuyên bạn nên tìm hiểu về trình chỉnh sửa thuộc tính trong Trình thiết kế để triển khai thuộc tính setHidden/setShown cho nó. –

+0

Cảm ơn bạn rất nhiều. Nó hoạt động. – oya163

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