• 2335阅读
  • 6回复

[提问]model/view中如何实现单击出现Editor? [复制链接]

上一主题 下一主题
离线noudle614
 

只看楼主 倒序阅读 楼主  发表于: 2018-07-16
在model/view操作中,一般都是通过双击进入编辑模式才能出现lineEdit之类的控件。这个控件是通过createEditor函数实现的。但是我希望能直接单击就进入编辑模式,显示lineEdit控件该怎么做?在editorEvent函数中可以通过MouseButtonPress事件获取单击,但是不知道如何显示出lineEdit。
离线zoemolly

只看该作者 1楼 发表于: 2018-07-16
用委托 QStyledItemDelegate
离线lemonzll

只看该作者 2楼 发表于: 2018-07-16
调用view类的函数setEditTriggers(QAbstractItemView::CurrentChanged | QAbstractItemView::SelectedClicked)设置下。我一般都是用setEditTriggers(QAbstractItemView::AllEditTriggers)把所有的都启用。

离线noudle614

只看该作者 3楼 发表于: 2018-07-16
回 lemonzll 的帖子
lemonzll:
调用view类的函数setEditTriggers(QAbstractItemView::CurrentChanged | QAbstractItemView::SelectedClicked)设置下。我一般都是用setEditTriggers(QAbstractItemView::AllEditTriggers)把所有的都启用。


感谢大神的回复,设置了之后就可以单击触发了。但是目前又遇到一个问题就是,model只有一列,单击修改数据的时候,前面的标题会被覆盖。下图中的lineEdit是通过createEditor函数生成的。这里有没有其他的办法呢?
离线lemonzll

只看该作者 4楼 发表于: 2018-07-16
createeditor的时候直接用个自定义的widget,用水平布局左边加个label,显示左边的文字,中间加个stretch,右边加个lineedit,一起显示就行了。默认焦点放lineedit上
离线noudle614

只看该作者 5楼 发表于: 2018-07-17
我脑袋太笨,没想到这个方法!感谢大神帮助!
离线clickto

只看该作者 6楼 发表于: 2018-07-17
最后一行的combbox,是css设置么?
快速回复
限100 字节
 
上一个 下一个