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

MURATA Yasuhisa murata @ nips.ac.jp
2015年 10月 5日 (月) 11:30:59 JST


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

下記のサイトにて検索してみたところ、
同様の症状に関する登録が既にされているのを確認しました。
以下の2件です。

QTBUG-9592
  Disappearing popup menu in QPlainTextEdit
  https://bugreports.qt.io/browse/QTBUG-9592

QTBUG-17559
  Text cursor not restored when after a context menu is closed
  in QTextEdit or QLineEdit.
  https://bugreports.qt.io/browse/QTBUG-17559

未解決の状態ですが、
レイアウトマネージャを使うことで回避できていますので、
このままでも問題ありません。

ありがとうございました。

On 2015/10/05 2:54, Tasuku Suzuki wrote:
> 鈴木です。
> 
> 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 メーリングリストの案内