c++ - QTreeWidget : Windows Explorer-like editing

标签 c++ python qt4 pyqt4

我想创建一个QTreeWidget,其中的项目既可编辑又可启动。我希望它的行为像 Windows 资源管理器:

单击 -> 选择

单击之前选择的项目 -> 打开 LineEdit 编辑名称

双击 -> 执行“启动”

因此,我为 itemClicked()itemDoubleClicked() 创建了插槽。第一个如下:

def EditName(self, item, column):
    if self.lastclick == item:
        self.editItem(item)
    self.lastclick = item

第二个只是“启动”文件。

但是,这种解决方案不区分双击和连续两次单击,因此双击后仍然会出现QLineEdit。是否可以强行摆脱编辑器?我尝试了一种黑客解决方案,例如隐藏和显示该项目,但它不起作用。

最佳答案

您只需在 QTreeWidgetItem 上设置标志以包含 ItemIsEditable 选项,并在 QTreeWidget 上设置 SelectedClick 的编辑触发器

def populate( self, tree ):
    tree.setEditTriggers(tree.SelectedClicked)
    for i in range(10):
        item = QTreeWidgetItem(['Testing %02i' % i])
        item.setFlags(item.flags() | item.ItemIsEditable)

关于c++ - QTreeWidget : Windows Explorer-like editing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12238299/

相关文章:

c++ - 如何在 C++ 中实现 function(f)(x)(y, z)(g)(r)?

python - 是否有用于 python 的交互式图形库

python - 使用python减少表格爆炸输出文件中的命中数

python - 如何运行 Nuitka 编译的 Python 可执行文件

multithreading - 在Qt中实现用于消费操作的线程

c++ - 将数据从 QSqlTableModel 转换为 QTableView 中的人形(enum -> String)

Qt 小部件调整为宽度 = 256,而它不应该

c++ - Crypto++ "Tee"式过滤器

c++ - 使用重定向在 C++ 中打印到文件是否比使用对流 cout 更快?

c++ - SFINAE : Detecting if a function is called by a compile time known value