python.exe 崩溃(使用了所有系统允许的窗口管理器对象句柄)

Posted

技术标签:

【中文标题】python.exe 崩溃(使用了所有系统允许的窗口管理器对象句柄)【英文标题】:python.exe crashes (used all system allowance of handles for Window Manager objects) 【发布时间】:2013-07-15 10:20:30 【问题描述】:

我正在用QTextEdit 小部件填充QTableWidget 的两列中的单元格。当行数超过 ~1250 时 python.exe 崩溃:

pythhon.exe 已停止工作

在控制台中显示此消息,为超过 1250 行中的每个下一个小部件一遍又一遍地重复:

QWidget::create: 创建窗口失败(当前进程已使用 Window Manager 对象的句柄的所有系统允许。)

所以我的问题是如何增加 win7 的系统句柄限制(我找到了 xp here 的教程,但我的 SharedSection 已经设置为 1024,20480,768 并且我读过它不安全增加桌面堆超过 20480)或者以其他方式填充表?我就是这样做的:

textEdit = QtGui.QTextEdit()
textEdit.setPlainText("some text in 1-100 lines")
textEdit.setReadOnly(1)
textEdit.setFrameStyle(QtGui.QFrame.NoFrame)
textEdit.setFixedHeight(400)
textEdit.setFixedWidth(2000)
tableWidget.setCellWidget(i,j,textEdit)

我有 Python 2.6 和 PyQt 4.7

【问题讨论】:

【参考方案1】:

由于没有其他解决方案,我不得不以另一种方式填充表格...

tableWidget.setItem(i, j, QtGui.QTableWidgetItem("text"))

我只保留QtGui.QTextEdit() 以防我的“文本”超过 100 行,因为在这种情况下滚动表格会在我使用 setItem 时变慢

【讨论】:

以上是关于python.exe 崩溃(使用了所有系统允许的窗口管理器对象句柄)的主要内容,如果未能解决你的问题,请参考以下文章

程序崩溃后如何挂起所有线程?

pycharm初体验

拓展面试题之-linuxmongodbnginxphp面试题

开不了的窗_____window.open

评审关上了你CVPR的门?这还有Rebuttal的窗,7个小技巧送上

关闭并退出时崩溃