2011-11-05 25 views

Trả lời

4

Làm cách nào để bạn thêm biểu tượng vào QListWidget? phạt này nên làm việc (tôi tải các biểu tượng từ các tập tin tài nguyên):

ui->listWidget->addItem(new QListWidgetItem(QIcon(":/res/icon"), "")); 

EDIT

Từ ảnh chụp màn hình tôi thấy rằng vấn đề của bạn là có một số khoảng trống bên dưới biểu tượng tương ứng với chuỗi rỗng. Bạn có thể tấn công hành vi này bằng cách đặt kích thước rất nhỏ thành phông chữ của mục tiện ích danh sách.

QListWidgetItem *newItem = new QListWidgetItem; 
QFont f; 
f.setPointSize(1); // It cannot be 0 
newItem->setText(""); 
newItem->setIcon(QIcon(":/res/icon")); 
newItem->setFont(f); 
ui->listWidget->addItem(newItem); 

Điều này sẽ thực hiện thủ thuật. Tuy nhiên, bạn cũng có thể sử dụng chức năng setItemWidget và sử dụng tiện ích được thiết kế tùy chỉnh của mình hoặc sử dụng một số QListView và một đại biểu.

+0

Một khoảng trống được hiển thị thay cho văn bản. Không gian này được chọn khi bạn chọn biểu tượng. Tôi muốn loại bỏ nó. Đã sửa câu hỏi của tôi. – Dmitriy

+0

Kiểm tra câu trả lời cập nhật của tôi – pnezis

+0

Đặt phông chữ nhỏ không thực hiện được mẹo. Một hình chữ nhật nhỏ vẫn hiển thị sau khi chọn. setItemWidget hoạt động lạ, nó vẫn hiển thị một hình chữ nhật trống. Tôi đã thêm QLabel với một pixmap làm widget. Hy vọng cuối cùng là đại biểu. Bạn có thể đăng đoạn mã, cách đạt được mục tiêu của mình không? – Dmitriy

1

Giải pháp của tôi là gọi setSizeHint() trên mục có kích thước biểu tượng. Tôi đã thêm một miếng đệm nhỏ vì hộp chọn đã bị cắt mà không có nó.

QListWidgetItem * pItem = new QListWidgetItem(icon, ""); 
pItem->setSizeHint(iconSize + QSize(4,4)); 
listWidget->addItem(pItem); 
7

sử dụng NULL thay

ui->listWidget->addItem(new QListWidgetItem(QIcon(":/res/icon"),NULL));

+1

đây là câu trả lời đúng – ejectamenta

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