[Qt-users:463] QTextEdit でコンテキストメニューが表示されなくなる現象

MURATA Yasuhisa murata @ nips.ac.jp
2015年 10月 1日 (木) 09:43:19 JST


生理学研究所の村田です。

QTextEdit 上で右クリックすると、
コンテキストメニューが表示されますが、
一度メニューを閉じると、その後
表示されなくなります。
(ただし、ウィンドウを最小化したり、タイトルバーを
クリックしたりすると再び表示されるようにはなります。)

======== 以下が該当のコードです ========
#include <QApplication>
#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QTextEdit *edit = new QTextEdit;
    edit->setText("Hello Qt!");
    edit->show();
    return app.exec();
}
========================================

以下のようにレイアウトマネージャ(QVBoxLayout)を
使うように修正したところ、
上述の現象が発生しなくなりました。

======== 修正後のコード ========
#include <QApplication>
#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget *window = new QWidget;
    QTextEdit *edit = new QTextEdit;
    edit->setText("Hello Qt!");
    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(edit);
    window->setLayout(layout);
    window->show();
    return app.exec();
}
========================================

edit->setText("Hello Qt!");
の箇所を
edit->setHtml("Hello Qt!");
としたり、
QTextEdit の代わりに QPlainTextEdit を使って
edit->setPlainText("Hello Qt!");
とかしてもレイアウトマネージャを使わないと
同様の現象が発生します。

Qt側の不具合でしょうか?

なお、こちらで試した Qt のバージョンは以下の通りです。
    Windows 版 Qt 5.5.0
    Linux 版 Qt 5.4.2

-- 
村田 安永




Qt-users メーリングリストの案内