Documentation Documentation
主页
指南
DTK
经验分享
社区作品
关于
  • 简体中文
  • English
  • Español
GitHub (opens new window)

Deepin

Deepin 社区文档
主页
指南
DTK
经验分享
社区作品
关于
  • 简体中文
  • English
  • Español
GitHub (opens new window)
  • Dtk文档总集合
  • 接口changelog
  • UOS-Deepin 中配置 DTK 开发环境
  • Dtk的历史起源、发展,和简单入门
  • Dtkcore提供的单例类DSingleton的用法
  • Dtk自动保存主题
  • 主题相关知识集锦
  • Dtk播放系统音效
  • 如何实现单例进程
  • DSettingsDialog使用json创建对话框及其国际化
  • DLabel的ElideMode
  • Dtkcore的DExportedInterface接口的用途
  • 判断是否社区版、如何显示 Logo 以及获取发行版名称
  • Dtk 前期准备、绘画 Qt 自带控件、创建及绘画自定义控件
  • Dtk 常用、测试代码片
  • 使用 DDesktopEntry 解析 desktop 文件
  • Dtk加载翻译文件
  • Dtk 日志管理
  • Dtk相关配置目录
  • DTK 对 pkg-config 命令的支持
  • DDesktopServices的使用
  • Dtk汉字转拼音
  • 清空回收站
  • DPathBuf拼接路径
  • 如何调用外部程序
  • DAnchors的使用
  • DBlurEffectWidget的使用
  • 窗口模糊效果
  • Codeanalysis工具的使用
  • 代码格式化脚本pre-commit
  • Qt5 GUI程序界面启动耗时统计工具
  • Scrollbar 设置为上下(左右)不到顶端
  • DAbstractUnitFormatter 单位格式化工具
  • Dtk-translate工具
  • DSettings 工具
  • Deepin-os-release 工具
  • Dlistview DViewItemActionsetwidget 用法
  • DTK问题判定方法
  • 题栏菜单没有「帮助」菜单项
  • DBackgroundGroup 移除一项后,下边的圆角没有刷新
  • 在标题栏拖动鼠标出现无法拖动窗口的问题
  • 锁屏状态下音乐播放控件状态异常
  • 应用图标异常
  • 为什么bug状态为已解决,验证依旧不通过
  • 为何我的标题栏右键菜单的背景色与应用窗口颜色不一致
  • DTK 基础教程:自定义控件规范
  • 制作 dde-control-center 插件
  • DTK
Deepin | Any developer
2020-12-11

Dlistview DViewItemActionsetwidget 用法

Dlistview DViewItemAction::setwidget 用法

DListView 如何设置widget

DListView中没有主要的方法添加widget,但是在DViewItemAction中可以通过setWidget添加,进而通过Action的方式添加进DListView中

但是添加是时候需要注意一些细节

主要就是需要添加的widget的父类问题,需要将父类设置为DListView中的DListView::viewport()返回的widget,否则会出现滚动区域widget坐标不正确的问题

以下为main函数中演示的小案例

DMainWindow w;
DWidget *widget = new DWidget(&w);
QHBoxLayout *layout = new QHBoxLayout(widget);
DListView *listview = new DListView(widget);
layout->addWidget(listview);
QStandardItemModel *model = new QStandardItemModel(widget);
listview->setModel(model);
for (uint i = 0; i < 5; ++i) {
    DStandardItem *standardItem1 = new DStandardItem;
    DViewItemAction *itemAction = new DViewItemAction(Qt::AlignRight, QSize(36, 36), QSize(80, 80), true);
    QWidget *iconButtonList = new QWidget(listview->viewport());
    QHBoxLayout *iconButtonLayout = new QHBoxLayout(iconButtonList);
    iconButtonLayout->addWidget(new DIconButton(QStyle::StandardPixmap(QStyle::SP_TitleBarMenuButton + i)));
    iconButtonLayout->addWidget(new DIconButton(QStyle::StandardPixmap(QStyle::SP_TitleBarMenuButton + i * 4 + 1)));
    iconButtonLayout->addWidget(new DIconButton(QStyle::StandardPixmap(QStyle::SP_TitleBarMenuButton + i * 4 + 2)));
    iconButtonLayout->addWidget(new DIconButton(QStyle::StandardPixmap(QStyle::SP_TitleBarMenuButton + i * 4 + 3)));
    iconButtonLayout->addWidget(new DIconButton(QStyle::StandardPixmap(QStyle::SP_TitleBarMenuButton + i * 4 + 4)));
    itemAction->setWidget(iconButtonList);
    standardItem1->setActionList(Qt::Edge::RightEdge, {itemAction});
    model->appendRow(standardItem1);
}
w.setCentralWidget(widget);
w.show();
帮助编辑此页 (opens new window)
上次更新: 12/17/2020, 2:23:36 AM
Deepin-os-release 工具
DTK问题判定方法

← Deepin-os-release 工具 DTK问题判定方法→

Theme by Vdoing | Copyright © 2020-2021 Deepin | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式