qt – QListWidget对齐项目

我用一些项创建QListWidget.

QHBoxLayout* h_layout = new QHBoxLayout;
    h_layout->setMargin( 0 );
    menu_list_widget_  = new QListWidget;
    menu_list_widget_->setFlow(QListView::TopToBottom);
    menu_list_widget_->setViewMode(QListView::IconMode);
    menu_list_widget_->setMovement(QListView::Static);
    menu_list_widget_->setFixedWidth( 100 );

    QListWidgetItem* lwi;
    menu_list_widget_->addItem( lwi = new QListWidgetItem(QIcon(":/icons/color_pencils.png"), "Цвета") );
    lwi->setTextAlignment(Qt::AlignCenter);
    menu_list_widget_->addItem( lwi = new QListWidgetItem(QIcon(":/icons/font.png"), "Шрифт") );
    lwi->setTextAlignment(Qt::AlignCenter);
    lwi->setHidden( true );
// etc
    h_layout->addWidget(menu_list_widget_, 0, Qt::AlignHCenter)

但物品没有居中对齐

《qt – QListWidget对齐项目》

为什么?

最佳答案 我对你的代码做了一些修改,但主要是为每个元素添加
QListWidgetItem::setSizeHint()

QListWidgetItem* lwi = new QListWidgetItem(QIcon(":Image/pinwheel.png"), "Цвета");
lwi->setSizeHint(QSize(256, 52));
listWidget->addItem( lwi );
lwi->setTextAlignment(Qt::AlignCenter);

lwi =  new QListWidgetItem(QIcon(":Image/pinwheel.png"), "Управление и что-то еще");
lwi->setSizeHint(QSize(256, 52));
listWidget->addItem( lwi );
lwi->setTextAlignment(Qt::AlignCenter);

现在它看起来与我对齐:

《qt – QListWidget对齐项目》

点赞