【发布时间】:2017-01-16 04:53:22
【问题描述】:
我有一个基本的 QTableWidget,用这个 python 代码创建:
from silx.gui import qt
app = qt.QApplication([])
qtw = qt.QTableWidget()
qtw.show()
qtw.setColumnCount(8)
qtw.setRowCount(7)
app.exec_()
from silx.gui import qt 行只是一个包装器,它找出已安装的 qt 包装器(PyQt4、PyQt5 或 PySide)并展平 qt 命名空间。
当我编辑一个单元格时,生成的表格有一个奇怪的行为:正如预期的那样,当我双击单元格时,旧文本被高亮显示,但不寻常的行为是旧文本仍然可见,而新文本与旧的,而我正在输入它,直到我按 Enter 或单击另一个单元格。
我希望在我开始输入新文本后旧文本消失。我知道这是可能的,因为我有一个程序示例,它具有我想要的行为的 qTableWidget。
但我无法找到该程序中单元格编辑行为发生更改的位置。我该怎么做?
“垃圾邮件”和“鸡蛋”叠加的示例。
[
编辑:没有包装业务的代码示例
from PyQt5.Qt import QApplication, QTableWidget, qVersion
app =QApplication([])
print(qVersion())
qtw = QTableWidget()
qtw.show()
qtw.setColumnCount(8)
qtw.setRowCount(7)
app.exec_()
对于 PyQt4,使用此导入(同时删除 print(qVersion()) 行):
from PyQt4.QtGui import QApplication, QTableWidget
【问题讨论】:
-
您是否像往常一样在导入 qt 包装器后尝试了您的代码。导入 PyQt5 后,它按预期工作。
-
我试过了,我没有解决问题。我测试了 PyQt4/Qt 4.8.6 和 PyQt5/Qt 5.3.2。
-
@PiRK。我无法使用 PyQt-4.11.4/Qt-4.8.7 或 PyQt-5.7/Qt-5.7 重现这一点。对我来说它看起来像一个错误。您是否能够通过查看 Qt Designer 中的类似示例来重现该问题?也许你也应该尝试一些不同风格的插件。
-
我在 Qt 设计器中使用 qtablewidget 时遇到了同样的问题。
-
有趣的发现:我玩过另一个具有正确行为的程序。当从该复杂程序调用小部件时,单元格的行为方式将按照我们希望的方式进行。但是当我自己加载小部件时,我遇到了与我的示例相同的问题。
标签: python qt pyqt qtablewidget