标题:model/view中如何实现单击出现Editor?
作者:noudle614
日期:2018-07-16 15:47
内容:
在model/view操作中,一般都是通过双击进入编辑模式才能出现lineEdit之类的控件。这个控件是通过createEditor函数实现的。但是我希望能直接单击就进入编辑模式,显示lineEdit控件该怎么做?在editorEvent函数中可以通过MouseButtonPress事件获取单击,但是不知道如何显示出lineEdit。
#1 [zoemolly 07-16 16:26]
用委托 QStyledItemDelegate
#2 [lemonzll 07-16 17:03]
调用view类的函数setEditTriggers(QAbstractItemView::CurrentChanged | QAbstractItemView::SelectedClicked)设置下。我一般都是用setEditTriggers(QAbstractItemView::AllEditTriggers)把所有的都启用。
#3 回 lemonzll 的帖子 [noudle614 07-16 18:04]
lemonzll:
调用view类的函数setEditTriggers(QAbstractItemView::CurrentChanged | QAbstractItemView::SelectedClicked)设置下。我一般都是用setEditTriggers(QAbstractItemView::AllEditTriggers)把所有的都启用。
感谢大神的回复,设置了之后就可以单击触发了。但是目前又遇到一个问题就是,model只有一列,单击修改数据的时候,前面的标题会被覆盖。下图中的lineEdit是通过createEditor函数生成的。这里有没有其他的办法呢?
#4 [lemonzll 07-16 18:14]
createeditor的时候直接用个自定义的widget,用水平布局左边加个label,显示左边的文字,中间加个stretch,右边加个lineedit,一起显示就行了。默认焦点放lineedit上
#5 [noudle614 07-17 08:48]
我脑袋太笨,没想到这个方法!感谢大神帮助!