编辑:这已在Qt 6.7更新中修复.
如果我运行下面的代码,然后try 通过双击或开始输入来编辑第一个单元格,窗口就会冻结并关闭,输出为Segmentation fault (core dumped)
.
如果我禁用编辑单元格或使用PyQt 5,则此问题已得到修复.
如果我取消设置WAYLAND_SYS环境变量以强制程序在Xwayyland中运行(或者至少我认为它是这样做的),它不会崩溃,这样做会打印:
Failed to create wl_display (Connection refused)
qt.qpa.plugin: Could not load the Qt platform plugin "wayland" in "" even though it was found.
尽管它仍然有效.
我希望能够显示表格中单元格内部的图像. 我试图通过创建一个标签、将其像素映射设置为图像,然后使用table.setCellWidget来做到这一点,但后来我遇到了这个问题.
这看起来像是PyQt 6/ Qt错误,但如果不是,有没有方法可以在不使用上面显示的修复的情况下修复这个问题?
如果有关系的话,以下是我的PyQt 6版本(我已经try 过使用pip安装和使用包管理器提供的系统包):
PyQt6 6.6.1
PyQt6-Qt6 6.6.3
PyQt6-sip 13.6.0
代码:
from PyQt6 import QtWidgets
class Crash(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Crash")
self.resize(800, 600)
self.show()
self.init_ui()
def init_ui(self):
self.table = QtWidgets.QTableWidget()
self.setCentralWidget(self.table)
self.table.setColumnCount(2)
self.table.setHorizontalHeaderLabels(["text", "widget"])
self.table.insertRow(0)
self.table.setItem(0, 0, QtWidgets.QTableWidgetItem("text"))
widget = QtWidgets.QWidget()
self.table.setCellWidget(0, 1, widget)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
window = Crash()
app.exec()