我正在处理我的第一个QT应用程序,我遇到了QListWidgetItems
的问题。
我会有不同类型的清单。 对于使用的复选框列表:
listElement[i]->setFlags(Qt::ItemIsEnabled);
listElement[i]->setCheckState(Qt::Unchecked);
完全符合要求。
但现在我想要一个单选按钮列表。所以我的问题分为两部分
我用过:
listElement[i]->setFlags(Qt::ItemIsEnabled);
QRadioButton *radio1 = new QRadioButton(0);
dlList->setItemWidget(listElement[i],radio1);
这将显示带有单选按钮的列表中的项目,问题是文本是通过单选按钮:
试图在没有图像的情况下进行演示
这是一个测试 Ø
对于元素1
而不是我有
的复选框This is a test
[]
for element 1
如何让radioButton与文本正确对齐?
新问题:
非常感谢你的答案,我的文字现在就在我的RadioButton旁边。
只有没有WordWrap的东西,我的文字比RadioButton的最大尺寸长。我怎样才能把它写到wordwrap:
rButton = new QRadioButton();
rButton->setFixedSize(LIST_TEXT_WIDTH_WO_ICON, LIST_TEXT_HEIGHT);
rButton->setStyleSheet("border:none");
rButton->setFont(segoe18Font);
rButton->setText("This is just a test for elementsss of type euh!!!");
rButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
dropListWidget->setItemWidget(listElement, rButton);
答案 0 :(得分:4)
您可能已经阅读过,有两种方法可以达到您想要的效果。
QListView
,在必要时实施新的委托和模型。QListWidget
)并通过对QListWidgetItem
进行子类化或调用QListWidgetItem::setItemWidget
来更改项目的小部件。 由于问题指向第二个问题,我将尝试提供最简单的基于项目的解决方案。
以下代码生成图片中的列表小部件。
QListWidgetItem *it;
it = new QListWidgetItem(ui->listWidget);
ui->listWidget->setItemWidget(it, new QRadioButton(tr("Item 1")));
it = new QListWidgetItem(ui->listWidget);
ui->listWidget->setItemWidget(it, new QRadioButton(tr("Item 2")));
// .
// .
// .
it = new QListWidgetItem(ui->listWidget);
ui->listWidget->setItemWidget(it, new QRadioButton(tr("Item N")));
其中ui->listWidget
是指向保存项目的QListWidget
的指针。
我希望这会有所帮助。据我了解,这就是你所需要的。