jjzjj

QTreeWidget

全部标签

c++ - 如何获取 QTreeWidget 的项目数

我创建了一个QTreeWidget,我试图列出所有显示的项目。如果项目有child但没有展开,我不想进入项目内部。它确实获得了我在树中可以看到的项目数。我试过了:for(inti=0;itopLevelItemCount();++i){QTreeWidgetItem*item=MyTreeWidget->topLevelItem(i);...但这只给了我topLevelItem,我想要所有我能看到的。在示例中,我应该能够数出14个项目 最佳答案 您可以编写一个递归函数来遍历层次结构并计算所有可见项。例如:inttreeCount(Q

c++ - 如何获得 QTreeWidget 内部项目移动的通知?

我子类化了一个QTreeWidget,将它的dragDropMode设置为InternalMove并用自定义项目填充它,其中一些可以拖动,其他接受掉落。用户可以按预期在树周围移动项目。但是我需要通知项目顺序的变化并做出适当的react。不幸的是,没有我可以连接到的与树内项目移动相关的信号。我尝试获取QTreeWidget的底层model()的句柄,然后连接到它的rowsMo​​ved信号,但它似乎不会在内部移动期间发出。我重新实现了QTreeWidget的dropEvent(),但无法确定那里的目标行索引。显然,dropMimeData()事件根本不会为内部移动调用。我可以尝试其他任何

c++ - QTreeWidget editItem 失败,出现 "edit: editing failed"

我有一个QTreeWidgetItem添加到QTreeWidget:QTreeWidgetItem*item=newQTreeWidgetItem(ui->trwPairs);item->setFlags(item->flags()|Qt::ItemIsEditable);如果项目被编辑,我想对新值做一些检查:Pairs::Pairs(QWidget*parent):QWidget(parent),ui(newUi::Pairs){ui->setupUi(this);connect(this->ui->trwPairs,SIGNAL(itemChanged(QTreeWidgetIte

c++ - 如何将复杂的指针数据作为属性放入 qt 插件 xml 文件中

我已经在Qt中实现了一个小部件,如下所示:classMyWidget:publicQWidget{Q_OBJECTQ_PROPERTY(boolBooValREADgetBoolValWRITEsetBoolVal)Q_PROPERTY(MyPointer*PointerDataREADgetPointerWRITEsetPointer);...}我想在QtDesinger中使用它。因此,我实现了如下所示的QDesignerCustomWidgetInterface接口(interface):classMyPlugin:publicQObject,publicQDesignerCust

c++ - 如何在 QTreeWidget 中找到选定的项目?

我有一个继承QTreeWidget的类。如何找到当前选定的行?通常我以这种方式将信号连接到插槽:connect(myButton,SIGNAL(triggered(bool)),this,SLOT(myClick()));但是,我找不到任何与QTreeWidget->QTreeWidgetItem类似的东西。我找到的唯一方法是像这样重新定义QTreeWidget类的mousePressEvent:voidMyQTreeWidget::mousePressEvent(QMouseEvent*e){QTreeView::mousePressEvent(e);constQModelIndex

c++ - 从 QTreeWidget 再次获取 QTreeWidgetItem 列表

我该怎么做?实际上我的主要目标是获取QTreeWidget中的哪个复选框被选中。但如果你们帮我解决这个问题,我可以做到这一点。好吧,我找不到给我QList的方法再次这样我就可以遍历列表并检查复选框是否被选中(奇怪的句子,是吧?)。QTreeWidget::selectedItems()不做我想做的事。它实际上获取了所选项目(可以只是一个。所以我不知道itemS在这里意味着什么。反正我可能是错的)。我现在的主要目标是:完成QTreeWidget能够用它做任何我想做的事情。提前致谢。 最佳答案 由于您正在处理一棵树,因此API旨在让您可

c++ - QTreeWidget 通过拖动重新排序子项目

我有一个QTreeWidget,它只显示一个根节点和一个级别的子节点。我需要允许子节点的重新排序。他们绝不能重新成为parent。这就是我在QTreeWidget中启用项目拖动的方式:ui->levelElements->setSelectionMode(QAbstractItemView::SingleSelection);ui->levelElements->setDragEnabled(true);ui->levelElements->viewport()->setAcceptDrops(true);ui->levelElements->setDropIndicatorShown

c++ - QTreeWidget 中的 QT 可点击小部件(可能是按钮)?

我有一个基本上是QTreeWidget的表格,我想在其中放置一个可点击的小部件,可能是一个按钮。每行都是一个QTreeWidgetItem,但我不知道如何使用QTreeWidgetItem::setData添加按钮 最佳答案 这是对Qt文档中为QTreeWidget添加QPushButton到第二项中提供的示例的修改ui->treeWidget->setColumnCount(1);QListitems;for(inti=0;itreeWidget->insertTopLevelItems(0,items);ui->treeWidg

QT-QTreeWidget添加,删除控件

效果代码connect(ui->add,&QPushButton::clicked,this,[=](){//必须要重新new,因为ui->treeWidget->clear();会将//树控件中所有元素全部析构掉,如果这里不重新new就会空指针QPushButton*btn_del=newQPushButton("del");QTreeWidgetItem*item=newQTreeWidgetItem(QStringList()"asdfasdf");ui->treeWidget->addTopLevelItem(item);ui->treeWidget->setItemWidget(it

QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解

目录一、Qt项目视图(ItemViews)        1.QListView2.QTreeView3.QTableView二、Qt项目部件(ItemWidgets)1.QListWidget2.QTreeWidget3.QTableWidget一、Qt项目视图(ItemViews)        控件名称依次解释如下:ListView:清单视图TreeView:树视图TableView:表视图ColumnView:列视图UndoView:撤销命令视图1.QListViewQListView是一个用于显示列表数据的QtGUI组件。它基于模型/视图(Model/View)架构,可以通过QAbs