论坛类网站如何备案,cpanel 子网站,曹县住房和城乡建设部网站,平台卖货redo/undo中又push了 崩溃情况崩溃原因解决方法 崩溃情况
在正常调用QUndoStack的redo/undo时#xff0c;崩溃在了这里
unknown:0 QWidget: Cannot create a QWidget without QApplication.
崩溃原因
在正常调用QUndoStack的redo/undo时#xff0c;因为自身的逻辑处理崩溃在了这里
unknown:0 QWidget: Cannot create a QWidget without QApplication.
崩溃原因
在正常调用QUndoStack的redo/undo时因为自身的逻辑处理改变了某些值其值的信号引起新建了QUndoCommand并调用QUndoStack的push函数。
以redo为例子从源码上看的话就是这个还在859行的cmd-redo运行时此时的d-index还没有1还是先前的下标所以现在的d-index值还是d-command_list.size() - 1 而当redo中因为逻辑问题给所处的QUndoStack新push了一个QUndoCommand时因为上面的原因就delete掉了这个还在运行的QUndoCommand 结果push完了继续redo的时候cmd已经被释放了所以崩溃了 .
解决方法
处理好代码逻辑别在QUndoCommand的redo/undo里面出现引起push新的QUndoCommand操作。