我正在开发我的第一个 QT 应用程序,但我遇到了QListWidgetItems.
我会有不同种类的清单。对于复选框列表,使用:
listElement[i]->setFlags(Qt::ItemIsEnabled);
listElement[i]->setCheckState(Qt::Unchecked);
Run Code Online (Sandbox Code Playgroud)
完全按预期工作。
但现在我想要一个单选按钮列表。所以我的问题分为两部分
我用过了:
listElement[i]->setFlags(Qt::ItemIsEnabled);
QRadioButton *radio1 = new QRadioButton(0);
dlList->setItemWidget(listElement[i],radio1);
Run Code Online (Sandbox Code Playgroud)这将在列表中显示带有单选按钮的项目,问题是文本在单选按钮上:
将尝试在没有图像的情况下进行演示
这是 元素 1的测试
o
而不是我有的复选框
Run Code Online (Sandbox Code Playgroud)This is a test[]
Run Code Online (Sandbox Code Playgroud)for element 1
如何让单选按钮与文本正确对齐?
新问题:
非常感谢您的回答,我的文字现在就在我的 RadioButton 旁边。
唯一没有 WordWrap,我的文本长于 RadioButton 的最大大小。我怎样才能让它自动换行:
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);
Run Code Online (Sandbox Code Playgroud)
您可能已经读过,有两种方法可以实现您想要的。
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")));
Run Code Online (Sandbox Code Playgroud)
whereui->listWidget是指向QListWidget保存项目的指针。
我希望这有帮助。据我了解,这就是你所需要的。
| 归档时间: |
|
| 查看次数: |
5005 次 |
| 最近记录: |