2017-02-22 2 views
1

QListView 항목에 확인란을 추가하는 방법은 무엇입니까? 노력하고 있지만 qlistview에 나타나지 않습니다. 내가 QListView 항목에 QCheckBox을 채우기 위해 대답, 사용 대리자를 가지고QListView 항목에 확인란을 추가하는 방법은 무엇입니까?

for(int i = 0;i<myParent->listItem.size();i++) { 
    QHash<QString, QString> hash; 
    hash = myParent->listItem.at(i);  
    QStandardItem* item = new QStandardItem; 
    item->setText(hash.value("text")); 
    item->setCheckable(true); 
    model->appendRow(item); 
} 
ui->listView->setModel(model); 
+0

봅니다 명시 적으로 QStandardItem :: setCheckState은 (Qt는 :: checkState에는 상태)'작동하지 – Fabio

+0

, 당신은 내가 아는 나에게 몇 가지 세부 – pravin

+0

을 줄 수있는'사용'에서와 QListWidget'을 수행해야하는 체크 상태를 아이템으로 설정하여 체크 박스를 보이도록하십시오. 아마도'QListView/QStandardItem'과 같을 것이므로'item-> setCheckable (true);'라인 뒤에'item-> setCheckState (Qt :: Unchecked);를 추가해야합니다. – Fabio

답변

1
MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 

    // Add QListWidgets in to yout ui dialog box. and that that object here as "ui->listWidget" 

    QListWidgetItem * item1 = new QListWidgetItem(); 
    QListWidgetItem * item2 = new QListWidgetItem(); 
    QListWidgetItem * item3 = new QListWidgetItem(); 
    QListWidgetItem * item4 = new QListWidgetItem(); 
    QListWidgetItem * item5 = new QListWidgetItem("Text 1"); 


    ui->listWidget->addItem(item1); 
    ui->listWidget->addItem(item2); 
    ui->listWidget->addItem(item3); 
    ui->listWidget->addItem(item4); 
    ui->listWidget->addItem(item5); 

    ui->listWidget->setItemWidget(item1,new QCheckBox("Test Widget")); 
    ui->listWidget->setItemWidget(item2,new QPushButton("Test Widget")); 
    ui->listWidget->setItemWidget(item3,new QRadioButton("Test Widget")); 
    ui->listWidget->setItemWidget(item4,new QCheckBox("Test Widget")); 


    ui->listWidget->setWindowTitle("QListWidget Add Widgets Example"); 

} 
+0

감사합니다 kalpesh,하지만 여기 QListView QListWidget 사용하고 있습니다 – pravin

0

: 다음은 내 코드입니다. 각 QStandardItem의 체크 물리게을 설정하는

void paint (QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const 
    { 
     QStyleOptionViewItemV4 viewItemOption(option); 
      const int textMargin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1; 
      QRect newRect = QStyle::alignedRect(option.direction, Qt::AlignLeft, 
               QSize(option.decorationSize.width() + 5,option.decorationSize.height()), 
               QRect(option.rect.x() -5, option.rect.y(), 
                 option.rect.width() - (2 * textMargin), option.rect.height())); 
      viewItemOption.rect = newRect; 
     QStyledItemDelegate::paint(painter, viewItemOption, index); 

    } 
관련 문제