我为QCompleter
创建QLineEdit
,如果子类中没有动态定义的函数/方法,则可以正常工作(尝试在{{1}中使用./bugCompleterFilesysModel.py n
n运行脚本然后尝试通过删除LineEdit框中的一些字符来调出完成者。 [0, 1, 2, 9]
可以与QCompleter
,QStringList
和QStringListModel
一起使用。
如果我在子类中使用简单QFileSystemModel
的{{1}}添加一些动态定义的函数/方法,那么实例也可以正常运行(尝试在{{QCompleter
n中运行脚本1}},然后通过删除LineEdit框中的一些字符来尝试调出完成符。)
但是,如果我动态定义任何函数/方法,QCompleter与任何类型的数据模型都会在关闭GUI窗口时引发错误:
QStringList
要重复此错误,请尝试使用./bugCompleterFilesysModel.py n
中的[10, 20, 30]
m运行脚本,QObject::startTimer: QTimer can only be used with threads started with QThread
Segmentation fault
中的n,然后尝试通过删除LineEdit框中的一些字符来显示完成符,然后关上窗户。
任何人都可以告诉我为什么这样以及如何解决它?我几个小时都在摸不着头脑。谢谢你!
./bugCompleterFilesysModel.py mn
的完整脚本:
[1,2,3]
答案 0 :(得分:1)
这可能与删除顺序有关。
尝试将QLineEdit
设置为QCompleter
的父级,以便QLineEdit
删除它,而不是在其之前删除。