如何在QTableView中的一列或一行上添加控件

如何在QTableView中的一列或一行上添加控件,第1张

首先,创建一个combobox代理

class ComboDelegate : public QItemDelegate

{

Q_OBJECT

public:

ComboDelegate(QObject *parent = 0)

QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const

void setEditorData(QWidget *editor, const QModelIndex &index) const

void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const

void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const

}

实现里面声明的方法,具体参考帮助文档。

然后,在表中,为某一列设置代理

比如,第二列

pComboDelegate = new ComboDelegate()

pTable->setItemDelegateForColumn(1, pComboDelegate)

这样,每行的第二列,需要编辑时,双击,就会出现combobox了

解决办法:

打开我的电脑—组织—文件夹搜索选项-—查看

去掉 “使用复选框以选择项”前面的对钩。

取消快捷方式上的小箭头。

用鼠标右键单击桌面空白处,从d出菜单中选择“属性”。在打开的“显示 属性”窗口中选择“外观”选项卡,点高级,点击“项目”中的下拉箭头,从中选择“图标”,这时旁边的“大小”选项由本来的灰色变为可用,其值为Windows的默认值“32”,将这个值改为“30”或者更小一些,但不要小于24,然后单击下面的“确定”按钮。

启动注册表编辑器,然后依次展开如下分支:“HKEY_CLASSES_ROOT\lnkfile”;


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11408569.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存