1.综述
为了在QTableWidget即Qt的表格类中加入下拉框可以利用常规的QTableWidget->setCellWidget(row,column,new QComboBox)方法来实现。然而有些需求,比如要对下拉框显示的当前信息进行复制和粘贴操作,常规方法的下拉框无法被选择,更不用谈对当前显示内容的复制和粘贴了,为了解决这一难题,博主开发了利用QListWidget类模拟QComboBox在QTableWidget中实现可选中可复制粘贴的下拉框的方法。效果如图
2. 思路解析:
可以利用QTableWidget的信号
signal:
void itemClicked(QTableWidgetItem*);
编写槽函数响应此信号,每当某个单元格被点击时检查当前单元格是否具备提前设置好的特征,如果有,则在计算好的位置弹出QListWidget。用QListWidget来模拟QComboBox被点击之后弹出的下拉框用来展示所有的选项。点击QListWidget中的某个选项之后可以获取当前的text值,用该值来更新当前单元格所展示的文本值,并且QListWidget消失。还有很多情况需要手动杀掉QListWidget,详见代码实现.
3.代码实现:。
3.1定义数据结构。QTableWidget表格类中需要有下