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

Tasuku Suzuki stasuku @ gmail.com
2015年 10月 5日 (月) 02:54:00 JST


鈴木です。

Linux の Qt 5.6 ブランチでも同様の現象が起こります。

単独で QTextEdit を表示するケースは少ないので今まで見過ごされてきたのかもしれません。
https://bugreports.qt.io/ に既にバグが登録されていないか確認してもらえますか?
見つからなかった場合はバグレポートを書いてください。

よろしくお願いします。


2015年10月1日 9:43 MURATA Yasuhisa <murata @ nips.ac.jp>:
> 生理学研究所の村田です。
>
> 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 mailing list
> Qt-users @ qt-users.jp
> http://qt-users.jp/mailman/listinfo/qt-users


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