2010-04-14 30 views
6

Làm cách nào để tạo dấu hiệu mở rộng QTreeWidget luôn hiển thị ngay cả khi mục doest có bất kỳ phần phụ nào? Và làm thế nào để vẽ cái gì khác thay vì dấu mặc định?Dấu hiệu mở rộng QTreeWidget

Cảm ơn trước, Serge

+0

Tôi không biết câu trả lời cho phần thứ hai của câu hỏi của bạn. (Tôi đề nghị một lần nữa để hỏi trong một câu hỏi tách.), Nhưng tôi nghĩ rằng điều này sẽ liên quan đến QTreeView và một đại biểu, đó có thể là rất nhiều công việc hơn là chỉ dính vào mặc định. –

Trả lời

9

QTreeWidgetItems có property childIndicatorPolicy. Các giá trị cho phép là:

  • QTreeWidgetItem :: ShowIndicator
  • QTreeWidgetItem :: DontShowIndicator
  • QTreeWidgetItem :: DontShowIndicatorWhenChildless

Bạn muốn là người đầu tiên.

theItem.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) 
+0

Cảm ơn rất nhiều, nó đã giúp, và cho phần thứ hai của câu hỏi của tôi - tôi tự tìm ra giải pháp – serge

+0

làm cách nào để ẩn chỉ báo khi có con? – swdev

7

Trả lời câu hỏi thứ hai của tôi cho người khác.

Tôi nhìn để vẽ chức năng trong QTreeView và thấy như sau:

void QTreeView::drawBranches (QPainter * painter, const QRect & rect, const QModelIndex & index) 

Với chức năng này, bạn có thể rút ra bất cứ điều gì bạn muốn hiển thị ở phía bên trái của mỗi mục.

Và một lựa chọn tốt để hanlde này - sử dụng Style Sheets cho QTreeView:

http://qt.nokia.com/doc/4.6/stylesheet-examples.html#customizing-qtreeview