博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义实现复选框
阅读量:6240 次
发布时间:2019-06-22

本文共 556 字,大约阅读时间需要 1 分钟。

项目中需要用到复选框,而QComboBox只能实现单选操作。即使是加以改造可以多选,也只能一次选择一个选项,不符合项目需求。于是就花了两天时间来自己实现一个可行的复选框。

实现方案:QLineEdit + QListView + QPushButton

第一步是实现类似于QComboBox的显示框。

一个只读的QLineEdit + QPushButton就可以实现。这个QPushButton对象的父指针必须是QLineEdit,这样按钮才能浮在QLineEdit上。

需要根据实现界面大小计算按钮的起始位置。

 

第二步实现下拉框。

QListView + QStandardItemModel 框架可以简单的实现这个复选功能。底部还添加两个按钮:确定和取消。用于选择完之后的操作。

需要注意的是要设置这个窗体的属性   setWindowFlags(Qt::Popup);

这个属性可以确保在下拉列表失去焦点时,会触发隐藏操作(hide)

 

第三步是把前两个实现的控件变成一个整体。第二个控件不能设父指针,它不属于界面任何部分。

代码的实现还是很简单的。

具体的你可以参考 上的实现,在x有完整的实现代码。

转载于:https://www.cnblogs.com/zhugaopeng/p/8270817.html

你可能感兴趣的文章
EIGRP 查看邻居命令详解
查看>>
Linux启动的顺序说明
查看>>
Linux系统安装
查看>>
Oracle数据库的体系结构
查看>>
Cassandra监控 - OpsCenter手册
查看>>
rm: cannot remove `libtoolT': No such file or directory
查看>>
shell特殊符号cut命令,sort、wc、uniq命令,tee、tr、split命令
查看>>
Python第一天:Python擅长领域以及各种重点学习框架(包含Python在世界上的应用)...
查看>>
CentOS 7命令行安装GNOME、KDE图形界面
查看>>
如何用C++做游戏(3)
查看>>
MySQL学习记录笔记
查看>>
机器学习算法清单!附Python和R代码
查看>>
云原生的新思考,为什么容器已经无处不在了
查看>>
8月9日 上课截图
查看>>
laravel修改密码及与原密码Hash::check比较
查看>>
谈谈你对volatile的理解
查看>>
使用xtrabackup备份数据库
查看>>
一线互联网常见的 14 个 Java 面试题,你颤抖了吗程序员
查看>>
zip压缩,tar打包并压缩
查看>>
负载均衡集群 LVS的介绍、调度算法、NAT模式搭建
查看>>