Tôi có một QListView, nơi tôi hiển thị các mục bằng cách sử dụng đại biểu tùy chỉnh có sơn tùy chỉnh. Trong mỗi mục (nghĩa là mỗi hàng trong danh sách), tôi muốn có thể hiển thị một vài "siêu liên kết" mà người dùng có thể nhấp vào và sau đó sẽ gọi một số chức năng.Phần tử có thể nhấp hoặc tiện ích con bên trong đại biểu được sơn tùy chỉnh
Tôi đã cố gắng kiểm tra tài liệu chính thức (ví dụ: Model/View Programming) cũng như khá nhiều googling, nhưng không thể tìm ra cách để thực hiện việc này.
Tôi có hai ý tưởng, đều có những vấn đề riêng của họ:
- tôi có thể vẽ chúng bằng các widget con, giống như một QPushButton phẳng. Làm cách nào để tôi định vị và hiển thị các tiện ích này?
- Tôi cũng có thể vẽ chúng dưới dạng chuỗi văn bản. Làm thế nào để tôi làm cho họ có thể nhấp? Hoặc tôi có thể nắm bắt các sự kiện bấm trên QListView cha mẹ và bằng cách nào đó xác định tọa độ từ những người? Sau đó tôi có thể đối sánh tọa độ với các yếu tố có thể nhấp này và hành động tương ứng.
Cách tiếp cận ban đầu của tôi là sử dụng QListWidget với .setItemWidget(), nơi tôi có một tiện ích thích hợp với bố cục và tiện ích con. Thật không may, điều này quá chậm khi danh sách của tôi tăng lên đến hàng trăm hoặc hàng nghìn mục. Đó là lý do tại sao tôi đã thay đổi thành QListView với một đại biểu.