gpt4 book ai didi

c++ - 带单选按钮的 QListWidgetItem

转载 作者:太空狗 更新时间:2023-10-29 21:01:18 24 4
gpt4 key购买 nike

我正在开发我的第一个 QT 应用程序,但我遇到了 QListWidgetItems 的问题。

我会有不同类型的列表。对于复选框列表,使用:

listElement[i]->setFlags(Qt::ItemIsEnabled);

listElement[i]->setCheckState(Qt::Unchecked);

完全按照需要工作。

但现在我想要一个单选按钮列表。所以我的问题分为两部分

  1. 可以使用我用于复选框的相同逻辑来创建单选按钮吗?
  2. 我用过:

    listElement[i]->setFlags(Qt::ItemIsEnabled);

    QRadioButton *radio1 = new QRadioButton(0);

    dlList->setItemWidget(listElement[i],radio1);

这将显示带有单选按钮的列表中的项目,问题是文本在单选按钮上:

尝试无图演示

This is a test
o
for elements 1

代替我的复选框

   This is a test  

[]

   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);

最佳答案

正如您可能已经读到的,有两种方法可以实现您的目标。

  1. 最灵活的一个:使用 QListView ,如有必要,实现新委托(delegate)和模型。
  2. 继续使用基于项目的经典界面 (QListWidget) 并通过子类化 QListWidgetItem 更改项目的小部件或调用QListWidgetItem::setItemWidget .

由于问题指向第二个问题,我将尝试提供最简单的基于项目的解决方案。

下面的一段代码生成了图中的列表小部件。

enter image description here

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 的指针存放元素的地方。

希望对您有所帮助。据我了解,这就是您所需要的。

关于c++ - 带单选按钮的 QListWidgetItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com