- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有qTreeWidget的MainWindow。要将元素添加到此小部件,我已经实现了以下功能:
QTreeWidgetItem *MainWindow::prepareIt(QTreeWidgetItem *it, const QString &name, const QString &descr)
{
it->setText(0, name);
it->setText(1, descr);
return it;
}
QTreeWidgetItem *MainWindow::addRoot(const QString &name, const QString &descr)
{
QTreeWidgetItem *it = prepareIt(new QTreeWidgetItem(ui->treeWidget), name, descr);
it->setBackground( 0, QColor{112, 77, 75} );
it->setBackground( 1, QColor{78, 90, 110} );
return it;
}
QTreeWidgetItem *MainWindow::addChild(QTreeWidgetItem *parent, const QString &name, const QString &descr)
{
auto child = new QTreeWidgetItem(parent);
child->setBackground( 0, QColor{102, 67, 65} );
child->setBackground( 1, QColor{68, 80, 99} );
parent->addChild(prepareIt(child, name, descr));
return child;
}
...
addRoot(...);
addChild(parent,...);
...
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
...
ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->treeWidget, SIGNAL (customContextMenuRequested(const QPoint &)), this, SLOT (rightClick(const QPoint &)));
...
}
void MainWindow::rightClick(const QPoint &pt)
{
QModelIndex idx = ui->treeWidget->indexAt(pt);
if (idx.isValid())
{
qDebug() << idx.data().toString();
qDebug() << idx << "index.row()" << idx.row() << " index.column()" << idx.column();
}
}
最佳答案
更改单元格的颜色:
一个可能的解决方案是使用setData()方法:
void MainWindow::rightClick(const QPoint &pt)
{
QModelIndex idx = ui->treeWidget->indexAt(pt);
if (idx.isValid())
{
ui->treeWidget->model()->setData(idx, QColor("red"), Qt::BackgroundRole);
}
}
void MainWindow::rightClick(const QPoint &pt)
{
QModelIndex idx = ui->treeWidget->indexAt(pt);
if (idx.isValid())
{
for(int c=0; c < ui->treeWidget->columnCount(); ++c){
QModelIndex ix = idx.sibling(idx.row(), c);
ui->treeWidget->model()->setData(ix, QColor("red"), Qt::BackgroundRole);
}
}
}
void MainWindow::rightClick(const QPoint &pt)
{
QTreeWidgetItem *it = ui->treeWidget->itemAt(pt);
if (it)
{
for(int c=0; c < ui->treeWidget->columnCount(); ++c){
it->setBackground(c, QColor("red"));
}
}
}
关于c++ - 使用QModelIndex设置QTreeWidgetItem的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60754934/
上周我一直在努力创建一个给定一行和一列的 QModelIndex。 或者,我会满足于在已经存在的 QModelIndex 中更改 row() 的值。 任何帮助,将不胜感激。 编辑: QModelInd
我正在尝试在这样的特定单元格上进入编辑模式: void MainWindow::on_addButton_released() { tm->addRow(); tableView->s
我做了一个 QAbstractListModel其模型索引包含一个我绝对需要的指针,以便处理数据。我像这样添加数据: void PointListModel::addPoint(int frameNu
我有一个由 Node 和 Edge 表示的图表,我编写了一个适配器,因此我可以使用 Qt 标准 View 以表格形式查看图表,如下所示: Node1 -Edge1 -Node2
这是代码行: QModelIndex id = tm->index(r, ec, QModelIndex()); 所以我有自己的模型,它是 tm,我正在尝试访问它的索引。 r 代表行,ec 代表列。我
我尝试重新实现 filterAcceptsRow(int source_row, const QModelIndex &source_parent) - QSortFilterProxyModel 的
在Qt中,QModelIndex据我理解是用来表示索引的。 Officially : This class is used as an index into item models derived f
我将 QAbstractItemModel 子类化以在 QTreeView 中显示项目,并且在这个子类 (projectModel) 中,我有一个删除函数 TreeView 中当前选择的索引。 Com
下面的代码创建了一个“附加”了数据和代理模型的QListView。单击其中一个单选按钮调用 buttonClicked() 函数。 此函数调用模型的.data(index,role) 方法来获取存储在
我有一个QSortFilterProxyModel,我需要选择要删除的行,所以我使用了一个QPersistentModelIndex。 QPersistentModelIndex 适用于多行选择,而其
以下问题是关于 QAbstractItemModel 和 QModelIndex 类的设计以及它们之间的相互作用,如下面的代码示例所示: class Data: def __init__(se
我正在学习 pyqt 中的模型/ View 架构,但是当我遵循 Using model indexes 时指令并尝试用pyqt5风格编写一个demo。QModelIndex无法获取子节点信息? 代码:
我正在尝试在给定字符串值的情况下在 Qt 中选择抽象项目 View 的项目。我已经编写了根据字符串内容查找任何 QModelIndex 的函数。 我现在正尝试将我找到的所有那些 QModelIndex
我需要从 QFileSystemModel 中的文件路径和文件名中获取 QModelIndex。我看到有一个 index 函数,它接受一个 filepath 但我不知道 column 参数应该做什么。
有没有办法将 QModelIndex 转换为 QString?这背后的主要目标是我想使用动态生成的 QListView-Items 的内容。 QFileSystemModel *foolist = n
是否可以从 QModelIndex 中获取 Qpoint。我想获得一个 Qpoint,以便我可以在特定行显示工具提示。 最佳答案 您可以使用 QAbstractItemView::visualRect
我正在编写一个 C++ 应用程序,它使用 Qt 类来处理某些数据模型。为此,我继承了 QAbstractItemModel: // the following is a class that repr
我有一个带有 QStandardItemModel 的 QML TreeView 并使用 ItemSelectionModel 来管理选择。 ItemSelectionModel 需要一个 QMode
我正在尝试在 QModelIndexes 列表上使用 concurrent::run() 。我尝试调用的函数如下所示: writeXML(QModelIndex &index) 我的 map 代码如下
我有一个 clicked()-signal它知道类型为 QModelIndex 的选定索引. void onListClicked(const QModelIndex & index) { /* ..
我是一名优秀的程序员,十分优秀!