问题标签 [qtablewidgetitem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3673 浏览

c++ - Qt 添加表格小部件项目的问题

我有一个发票表格,我用它来创建发票和显示存储发票的结果。当我试图从数据库中读回数据并显示它时,我得到了错误

QTableWidget:不能插入一个已经被另一个QTableWidget拥有的项目 QTableWidget:不能插入一个已经被另一个QTableWidget拥有的项目 QTableWidget:不能插入一个已经被另一个QTableWidget拥有的项目 QTableWidget:不能插入一个已经被另一个QTableWidget拥有的项目另一个 QTableWidget QTableWidget:不能插入已经被另一个 QTableWidget 拥有的项目

我不明白这是为什么。我试图运行的查询将返回 4 行。我的代码如下

是什么导致了这个错误?

0 投票
2 回答
5950 浏览

python - 获取知道其元素的 QTableWidget 行的索引

[我正在使用 PyQt4,但我认为这个 Qt4 问题不是 Python 特有的。]

我有一个QTableWidget. 在每一行中,第一列包含一个按钮。单击时,该行将被删除。

要删除行,我使用removeRow(int row)方法,该方法将行的索引作为参数。连接信号时,我不知道行的索引,因为它可能会同时发生变化(例如,如果第一行被删除,所有行索引都会改变)。

这里接受的答案建议将回调传递给行中的 QTableWidgetItem 实例,然后在删除时从该项目中获取行号。

这会很好,除非该行的所有元素都不是QTableWidgetItem. 元素是按钮本身和一些组合框。

我想不出办法解决这个问题。

我可以以某种方式将我的元素之一放入 QTableWidgetItem 吗?我应该在某种隐藏列中添加 QTableWidgetItem 吗?

我们当前的实现使用indexAt(QtGui.qApp.focusWidget())(请参阅上述问题的其他答案),这对我来说似乎是一个抱歉的解决方法。

如果我用这样的可检查 QTableWidgetItem 替换按钮

我有一个 QTableWidgetItem 可以用来返回行索引。但是我不知道如何像使用按钮一样从中捕获“已检查”或“单击”事件。我发现的只是 的itemClicked信号QTableWidget,但是我必须过滤掉所有其他小部件。

必须有一些明显的东西我错过了。

编辑

从我在这里读到的内容,我可以将带有 setItem 的 QTableWidgetItem 和带有 setCellWidget 的 Button 小部件添加到同一个单元格。这对我来说似乎不太自然,但显然它有效(现在无法测试)。

我想我会那样做。添加 Button,并在同一单元格上添加一个虚拟 QTableWidgetItem 作为对行的引用。

这就是它的本意吗?

编辑 2

或者也许QTableWidget不是正确的小部件,我应该使用Layout,正如这里所建议的那样。

0 投票
2 回答
1488 浏览

qt - QTableWidget:按 Enter 时不要关闭编辑器

我希望QTableWidget在编辑项目时按 Enter 触发编辑回调,但我希望编辑器保持激活状态——就像它只会选择项目的所有内容一样,就像你开始编辑单元格时一样。

做这个的最好方式是什么?

感谢您在这里查看。

0 投票
1 回答
876 浏览

python - 将多个 QCheckBox 插入 QTableWidget 奇数行

我正在尝试创建一个包含 160 行的表,然后插入一个QCheckBox奇数行,特别是在第 10 列。问题是,我必须创建 80 个QCheckBox(每行一个,因此它们可以由用户)...

QCheckBox为我要做的 9 个项目一个一个地创建 80 个对象简直是胡说八道!

有没有办法通过循环来做到这一点?我什么都想不出来,我搜索了答案,一无所获。

0 投票
1 回答
48 浏览

c++ - Qt - 几个QtableWidgets可以共享链接的项目

Qt 几个 tableWidgets 共享链接的 Items

嗨,在 Qt 中,我有一个 QMainWindow -> centralWidget (QWidget) -> QtabWidget -> 然后是 10 个选项卡 (QWidgets) -> 每个选项卡最多有 26 个 QtableWidgets:

样品 1

样品 2

这个想法是,而不是这个:

有没有办法让我每次都可以用更少的代码向每个 tableWidget 添加一列。

当然不是这样,事实上我想知道是否有一种方法可以链接每个项目的一些项目,这些项目实际上是相同的项目,但它在每个项目中都重复,例如玩家名称每行相同在每个 tableWidget 中,因此如果用户在一个中编辑名称,它应该在每个 tableWidget 的同一行中更改它。

有没有办法以某种方式链接它们,或者作为信号检查项目更改的唯一方法。

我还希望如果我在一个 tableWidget 中按列排序,那么每个 tableWidget 中的新行排列应该是相同的。

谁能指出我正确的方向,我唯一的想法是使用 ItemChanged 的​​信号。没有更好的方法吗?

非常感谢您的时间。

0 投票
1 回答
3715 浏览

c++ - 如何从 Qt 上的标题(水平/垂直)QTableWidget 更改背景颜色?

我想知道如何更改对象QTableWidget上的标题(水平/垂直)的背景颜色Qt

我已经知道如何一起更改所有标题,使用:

但我需要单独更改这些项目。显然,如果这是可能的。

0 投票
1 回答
411 浏览

python - PyQt5 QTableItem.setText() 不做任何事情

我使用 Designer 创建了我的 ui,并使用 pyuic5 将其转换为 python 代码。

pyuic5 创建了一个名为schedule的 QtableWidget 实例,但没有初始化单元格,因此我使用以下命令对其进行了初始化:

当我尝试对它们调用 setText() 时,什么也没有发生。我在调用 setText() 后立即使用 text() 检查内部值,它似乎工作正常,但 ui 没有改变。

我想过在 QTableWidgetItem 对象上设置尺寸,但我做不到。看起来他们没有 setGeometry() 成员。

我在 Python2.7 上运行 PyQt5

0 投票
1 回答
1489 浏览

c++ - 如何将数据从文件中放入 QTable Widget Item?

我有 Qtable 和名为 input.txt 的文件

我试图通过从 input.txt 读取数据来显示 Qtable 小部件上的数据。

该表有 9 行和 9 列。我尝试制作一个 QTable 小部件项目并使用 for 循环将数据放入其中。但无法让它工作。

这是我尝试过的代码

}

这只是一个演示,用于检查我是否可以向每个单元格添加数字。

0 投票
1 回答
95 浏览

qtablewidget - QTableWidget 单元格值未出现在 QGIS 中

我想在 QGIS 插件中使用 QTableWidget,以便向用户显示以下列表的项目: QTableWidget: tableDomestic

这是我正在使用的代码,当插件运行但单元格为空时会出现 tableDomestic。我想也许我需要一个使单元格值出现的语句,但到目前为止,通过阅读其他示例,我没有找到任何东西。我对编程非常陌生,非常感谢您的帮助和指导。

通常,以下内容应该在一个循环中,但只是为了检查一切是否正常,我设置 i=0

0 投票
0 回答
430 浏览

pyqt4 - PyQt:如何在项目被编辑时获取 QTableWidgetItem 内容?

最后,我要解决的问题是有人在 a 中编辑字段,QTableWidget然后单击“确定”,然后再按 Enter 键或将焦点从表格单元格中移出。

默认行为似乎是忽略此单元格,因为它尚未“提交”。

这是一个简单的例子:

在此示例中,如果我输入a第一个单元格,则输入b第二个单元格;然后单击“确定”而不先按回车键或更改焦点,我将看到打印:

{'a': ''}

当我想看时:

{'a': 'b'}

我的一个想法是将单元格视为 QLineEdit 并使用 textChanged 来查看用户何时键入,然后在幕后使用每个击键来设置单元格的 setItem - 想法是单元格中的数据是始终保持最新。我通过使用QStyledItemDelegate(如下)尝试了此操作,以便它像 QLineEdit(具有 textChanged 信号)一样进行编辑。这在某种程度上有效,因为我可以打印出委托本身的更改,但我似乎无法在任何有用的地方获得 textChanged 信号(换句话说,对话框没有看到这个,因此它不能表中的 setItem)。

但这不是诀窍。

我还尝试在 QLineEdit 的 textChanged 触发时发出 commitData 信号,但这也没有帮助。

有没有办法在单元格仍在编辑时获取单元格内容?