gpt4 book ai didi

c++ - Qt 在 QVector::operator[] 中抛出 ASSERT 失败:QTextBrowser 中的 "index out of range"

转载 作者:行者123 更新时间:2023-11-30 02:54:37 30 4
gpt4 key购买 nike

我正在使用 QTextBrowser 通过追加函数显示字符串。

    void testing::displaytext()
{
qRegisterMetaType<QTextCursor>("QTextCursor");
ui.textBrowser->append("Welcome to the world of QT");
ui.textBrowser->append("Welcome to the world of QT");
ui.textBrowser->append("Welcome to the world of QT");
ui.textBrowser->append("Welcome to the world of QT");
ui.textBrowser->append("Welcome to the world of QT");
ui.textBrowser->append("Welcome to the world of QT");
ui.textBrowser->append("Welcome to the world of QT");
ui.textBrowser->append("Welcome to the world of QT");
ui.textBrowser->append("Welcome to the world of QT");
}

上面的函数被一个线程定期调用,但是之后有时被要求抛出此错误:

    ASSERT failure in QVector<T>::operator[]: "index out of range", file c:\iwmake\build_vs2010_opensource_________________padding_________________\include\qtcore\../../src/corelib/tools/qvector.h

我该如何解决这个异常?

最佳答案

你应该只从 gui 线程调用 QWidget 及其所有后代的成员函数,因为 QWidget 类及其所有后代,包括 QTextBrowser 几乎没有任何多线程保证。他们甚至不是reentrant如记录here .但是,通过信号触发插槽是线程安全的,可能是您问题的解决方案。

关于c++ - Qt 在 QVector<T>::operator[] 中抛出 ASSERT 失败:QTextBrowser 中的 "index out of range",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941366/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com