【QT设计】widget出现红色布局禁用图标

第一步:添加一个布局控件到widget内

第二步:右键单击该widget的空白处,选中布局进行设置

第三步:此时禁用图标已消失

第四步:删除第一步添加的布局控件即可

### 关于 QT 中 `QListWidget` 的使用 #### 创建并初始化 `QListWidget` 为了创建和初始化一个 `QListWidget` 控件,通常会在窗体的构造函数中完成这一操作。下面是一个简单的例子来展示如何实现这一点: ```cpp #include <QApplication> #include <QWidget> #include <QVBoxLayout> #include <QListWidget> class MyWindow : public QWidget { public: MyWindow(QWidget *parent = nullptr); }; MyWindow::MyWindow(QWidget *parent) : QWidget(parent) { auto layout = new QVBoxLayout(this); // 创建 QListWidget 实例 auto listWidget = new QListWidget(this); // 将列表部件添加到布局中 layout->addWidget(listWidget); setLayout(layout); } ``` #### 添加项至 `QListWidget` 通过调用 `addItem()` 方法可以向 `QListWidget` 中增加新条目。此方法接收一个 `QString` 参数作为新的项目内容。 ```cpp // 向 QListWidget 中添加一项 listWidget->addItem("Item Text"); ``` 对于更复杂的场景,可能需要自定义 `QListWidgetItem` 对象再加入到 `QListWidget` 中[^1]。 #### 移除指定位置上的项 如果想要移除特定索引处的元素,则可以通过 `takeItem(int row)` 函数做到这点。需要注意的是,这不仅会从视图里隐藏该项还会将其彻底销毁。 ```cpp int indexToRemove = 0; if (indexToRemove >= 0 && indexToRemove < listWidget->count()) { delete listWidget->takeItem(indexToRemove); } ``` #### 处理 `QListWidget` 上发生的事件 当用户点击某个选项时触发相应的动作,可通过连接信号与槽机制处理这些互动行为。例如监听双击事件: ```cpp connect(listWidget, &QListWidget::itemDoubleClicked, [](QListWidgetItem* item){ qDebug() << "Double clicked on:" << item->text(); }); ``` 另外还有其他类型的交互也可以被捕捉,比如选中变化等。具体来说像 `currentRowChanged`, `itemSelectionChanged` 都是非常有用的信号源[^2]。 #### 设置图标模式 除了纯文本外还可以设置带有图片样式的列表项。利用 `setIcon(QIcon icon)` 可以为每一条记录配置不同的图像资源。而 `QIcon` 类本身支持多种显示样式适应不同情境下的需求,如正常态、激活态、禁用态以及选定态[^4]。 ```cpp QListWidgetItem* newItem = new QListWidgetItem("Text with Icon", listWidget); newItem->setIcon(QIcon(":/path/to/icon.png")); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值