标签: qtableview

使用QSortFilterProxyModel进行QTableView过滤(分组过滤器)

我似乎无法一次过滤多个列.我认为这是使用过滤器的常见用法,也许我错过了一些东西.

例如,我在我的4列QTableView,让我们说列X (string), Y (int), Z (string), Q (string).我希望通过筛选filter_1X和过滤的filter_2Z.是否可以QSortFilterProxyModel为多个列(动态)设置过滤器,但不是全部(重新实现filterAcceptsRow).

谢谢

qt filtering qtableview

3
推荐指数
1
解决办法
1万
查看次数

为什么QTableView行数没有更新?

我创建了一个QAbstractTableModel名为PresetTableModel,并将其连接到一个QTableView.我实现了rowCount,columnCount和数据函数.如果我rowCount返回一个固定的数字,一切都有效,但只要我返回一个变量值,列表视图就不会显示任何行.下面代码中的debug语句显示从0开始的大小值,但是一旦填充了列表,就会更改为9.

int PresetTableModel::rowCount(const QModelIndex & /*parent*/) const
{
    qDebug() << preset_list.count();
    return preset_list.size();
}
Run Code Online (Sandbox Code Playgroud)

我还需要做些什么来强制它更新行数吗?

qt qtableview

3
推荐指数
1
解决办法
4407
查看次数

Qt模型/视图与标准小部件

我目前正在阅读Qt的模型/视图教程,但我仍然不确定是否应该为我的Qt程序使用模型/视图或小部件:

我需要做一个记录器应用程序,它将监视模拟环境中的所有信息.基本情景可能是:

  1. 用户1虚拟实体B说了些什么 (记录器应用程序获取用户1所说的内容并在表视图或列表视图中显示)
  2. 虚拟实体B回复用户1的内容(记录器应用程序获取用户1所说的内容并将其添加到表视图或列表视图中)

等等

此记录器应用程序的需求是实时获取此信息,并且收集的数据将不可编辑.从本质上讲,这只是为了显示日志.

那么,使用模态/视图或小部件是否值得我想做什么?

谢谢

qt qtreewidget qtableview qtablewidget qtreeview

3
推荐指数
1
解决办法
6890
查看次数

中心在QTableView中对齐单元格的内容

我有一个QTableView.

有没有办法对齐中心,这个视图的所有单元格内容?

我没有使用任何代表.它只是AbstractTableModel作为模型添加到一个QTableView.

我应该如何将每个细胞内容与中心对齐?

谢谢.

qt qtableview qabstracttablemodel

3
推荐指数
1
解决办法
5546
查看次数

QTableView列的相对大小提示

我有一个带有自己的自定义模型的QTableView。它包含一个文本列表,每个文本列的最大大小有很大的不同。

我知道我可以实现自己的项目委托来为列提供大小提示,但是看起来是以像素为单位指定的。我宁愿以与分辨率无关的方式执行此操作。

有没有一种方法可以按比例指定所需的列大小,类似于在布局中水平拉伸因子如何工作?

qt qtableview qt5

3
推荐指数
1
解决办法
1199
查看次数

QT - 如何从QTableView中的单行获取值

我有一个QTableView记录很少,一行包含四列.我需要获取这4个索引值(名称,姓氏,年龄,用户名)以便将其删除SQLite,因此我需要将这四个值放入删除查询中.我希望点击的各项指标THAT行,并取回所有4个值.我该怎么做?谢谢

sqlite qt qtableview qmodelindex

3
推荐指数
1
解决办法
6660
查看次数

更改QTableView中的默认行大小

如何更改QTableView中的默认行大小,使其更小?我可以调用resizeRowsToContents(),但后续插入仍然在末尾添加新行,这是默认大小.

我猜它可能与样式表有关,但我不太熟悉影响视觉变化的东西.

我在Python中使用PySide,但我认为这是一个普遍的Qt问题.


示例视图:

默认表格外观

在此输入图像描述

表后面的内容resizeRowsToContents()如下:

在此输入图像描述

现在,如果我在末尾添加一个新的空白行:

在此输入图像描述

Darn,它使用默认行高,以及所有额外空间.

python qt qtableview pyside

3
推荐指数
1
解决办法
6672
查看次数

QTableView派生类中的paintEvent:绘制设备返回引擎== 0,键入:1

作为动画图像(又名预加载器)或替代品Qt负载指示器的跟进我试着在里面画画QTableView.但是当我初始化时,QPainter我收到以下警告.

QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
Run Code Online (Sandbox Code Playgroud)

这是代码(SO答案,它似乎有一个按钮):

    void CDerivedFromQTableView::paintEvent(QPaintEvent *event)
    {
        QTableView::paintEvent(event); // draw original content
        QPainter p(this); // Problem: QPainter::begin: Paint device returned engine == 0, type: 1
        const QPixmap pm(QPixmap::grabWidget(this->m_loadIndicator));
        QPoint middle = this->geometry().center();
        int x = middle.x() - pm.width() / 2;
        int y = middle.y() - pm.height() / 2;
        p.drawPixmap(QPoint(x, y), pm); // draw load …
Run Code Online (Sandbox Code Playgroud)

qt qtableview qpainter qt5.4

3
推荐指数
1
解决办法
1338
查看次数

如何在QHeaderView和QTableView之间注入小部件?

我想QHeaderView在其他部分之间显示小部件QTableView,如下面的示例图片(用Photoshop创建),因为这似乎是一种自然的方式来启用输入过滤列.


有没有人对如何在中间注入小部件有任何想法?


在此输入图像描述

python qt pyqt qtableview qheaderview

3
推荐指数
1
解决办法
1027
查看次数

如何在Qtableview中过滤多列?

我正在使用QtableView显示我的日志并按列过滤它们,因此使用了QSortFilterProxyModel。如果我使用某个值对某一列进行过滤,并且对过滤后的数据进行过滤,则如果我尝试对第二列进行过滤,则会重置上一个过滤器,并显示与第二列上的过滤器相对应的数据。我想在Qtableview上实现多列过滤器。

程式码片段:

self.tableView = QTableView()
self.model = QtGui.QStandardItemModel(self)
self.proxy = QtGui.QSortFilterProxyModel(self)
self.proxy.setSourceModel(self.model)
self.tableView.setModel(self.proxy)

def updateTable(self):
    self.model.invisibleRootItem().appendRow(,,,,)

def filterTable(self, stringAction, filterColumn):
    filterString = QtCore.QRegExp(  stringAction,
                                    QtCore.Qt.CaseSensitive,
                                    QtCore.QRegExp.FixedString
                                    )

    self.proxy.setFilterRegExp(filterString)
    self.proxy.setFilterKeyColumn(filterColumn)
Run Code Online (Sandbox Code Playgroud)

python pyqt qtableview pyqt4 python-2.7

3
推荐指数
1
解决办法
1921
查看次数