私の問題は、QTextBrowser が追加されたすべてのデータを表示できないことです。Windowsでqt5.4を使用しています。私のクラスは次のようになります:
class InfoTextBrowser : public QTextBrowser
{
Q_OBJECT
public:
InfoTextBrowser(QObject *parent);
~InfoTextBrowser();
public slots:
void appendText(const QString& text) {
try
{
this->append(text);
}
catch(std::bad_alloc& e)
{
if(!memoryError)
{
QMessageBox::warning(this,"My app", QStringLiteral("Out of Memory"),QMessageBox::Ok);
this->clear();
memoryError = true;
}
}
QScrollBar* myBar = this->verticalScrollBar();
if (myBar!=NULL)
myBar->setValue(myBar->maximum());
};
private:
void contextMenuEvent(QContextMenuEvent *event);
private:
bool memoryError;
};
最初に bad_alloc 例外が発生し、次にアプリケーションを 64 ビットに移動すると、例外は発生しません。しかし、プログラムを実行すると、QTextBrowser はしばらくするとデータの表示を停止します。死んでしまい、クリアもリフレッシュもできません。
これの代わりに QPlainTextEdit も試してみましたが、やはりうまくいきませんでした。実行時にすべてのデータを表示したい、または表示できるデータの一部を表示したい。死ぬと最初の段落だけで止まるからです。また、テキストファイルから読み取ってデータを表示したくありません。
この状況に直面している人はいますか?
前もって感謝します。