2011-11-08 33 views
7

Cách thêm 2 Hình ảnh và Văn bản trong QListWidget vào thời gian chạy trong Qt? Tôi muốn đặt một hình ảnh ở đầu danh sách và một ở cuối và văn bản sẽ sớm xuất hiện sau Hình ảnh đầu tiên của tôi.QListWidget Thêm các mục tùy chỉnh vào Qt?

itemclicked kiện

connect(list, SIGNAL(itemClicked()), this, SLOT(clicked(QListWidgetItem *))); 
void MyWidget::clicked(QListWidgetItem *item) 
{ 
    //code 

} 

Trả lời

10

Có một cái nhìn tại setItemWidget chức năng. Bạn có thể thiết kế một widget (gọi nó là MyListItemWidget) có chứa hai nhãn biểu tượng và một nhãn văn bản, và trong hàm tạo của nó cung cấp hai biểu tượng và văn bản. Sau đó, bạn có thể thêm nó vào QListWidget của bạn. Mẫu mã sau:

QIcon icon1, icon2; // Load them 
MyListItemWidget *myListItem = new MyListItemWidget(icon1, icon2, "Text between icons"); 
QListWidgetItem *item = new QListWidgetItem(); 
ui->listWidget->addItem(item); 
ui->listWidget->setItemWidget(item, myListItem); 

Bạn cũng nên có một cái nhìn tại QListViewQItemDelegate đó là lựa chọn tốt nhất cho việc thiết kế và hiển thị danh sách các mục tùy chỉnh.

EDIT VỀ KẾT NỐI BẠN

Khi kết nối tín hiệu đến một khe chữ ký của họ phải phù hợp. Điều này có nghĩa là một vị trí không thể có nhiều thông số hơn tín hiệu. Từ signals-slots documentation

Tín hiệu và khe cắm cơ chế được nhập an toàn: Chữ ký của tín hiệu phải khớp với chữ ký của khe nhận. (Trong thực tế, một khe cắm có thể có một chữ ký ngắn hơn so với các tín hiệu mà nó nhận được vì nó thể bỏ qua đối số thêm.)

này có nghĩa là tín hiệu của bạn phải có QListWidgetItem * tranh cãi trong kết nối.

connect(list, SIGNAL(itemClicked(QListWidgetItem *)), this, SLOT(clicked(QListWidgetItem *))) 
+0

Tôi đã làm theo cách tương tự như được đề xuất bởi bạn hoạt động tốt nhưng sau đó khi tôi sử dụng sự kiện itemclicked trên danh sách được kích hoạt khi nhấp đúp, nó sẽ hoạt động trên một cú nhấp chuột. – user662285

+0

Bạn xử lý tín hiệu 'itemClicked' như thế nào? Một số mã sẽ hữu ích – pnezis

+0

xem bài đăng đã chỉnh sửa của tôi ở trên. – user662285

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