1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

QtAdvent Calendar 2024

Day 19

Qt Creator を微かに改善してみました

Posted at

はじめに

この記事は Qt Advent Calendar 2024 19日目の記事です。

一昨日は @Ndgt さんによる 3DCG分野からの Qt/PySide 入門記 でした。

結構昔から Maya が Qt で作られていて、Qt を使ったプラグインで拡張できるのは知識としては知っていましたが、それ以外にも幅広く使われているんですね。


今日は、Qt Creator にちょっとしたパッチを送ったのでそれを記事にしました。

きっかけ

最近 Slint という Qt とは別の GUI フレームワークをよく使っているのですが、プロパティの設定画面でホイールをスクロールしていたらイライラしました。

slint-scroll-combobox.gif

そしてバグ報告をしようと思ったら、すでに報告されていました。

そこで開発者の1人が以下のようにコメントしていました。

Thanks for the bug report.
We should do the same as what the platform natively does.
I tried Qt and the wheel does change the combobox even within scroll area.
On windows, it seems that the wheel only change the content of the combobox > if it has focus.

それで、昔 Qt Creator で同じ問題にいらっとして修正したことを思い出しました。

QComboBox: not accept wheel events for changing values

その詳細を調べようと Qt Creator を起動したら、同じような別の問題を見つけてしまいました。

qt-creator.gif

多分、昔は CMake 使ってなかったので、普段 Qt Creator で操作するところに QTabBar が無かったんじゃないかなと思います。

直してみました

私の上記の変更をとりあえず受け入れた上で、開発者の1人がもっといい感じにしてくれたので、その仕組みをここの QTabBar に対して適用するような簡単な変更をしました。

diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index 80b249620b9..013402b5923 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -227,6 +227,7 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc)
     m_configurationStates = new QTabBar(this);
     m_configurationStates->addTab(Tr::tr("Initial Configuration"));
     m_configurationStates->addTab(Tr::tr("Current Configuration"));
+    setWheelScrollingWithoutFocusBlocked(m_configurationStates);
     connect(m_configurationStates, &QTabBar::currentChanged, this, [this](int index) {
         updateConfigurationStateIndex(index);
     });

CMakePM: Disable wheel events for QTabBar というパッチにして、本体に送りました。

レビューがスムーズに済んで、取り込まれるといいなと思っています。

おわりに

普段自分がよく使うツールなので、ちょっとでも気になるところがあるとすぐ改善したくなります。世界中のそんな人たちのおかげで、Qt Creator ってすごく使いやすい開発環境なんじゃないかなと思っています。私のちょっとした改善のいくつかも、みんなの役に立っていたらいいなと思っています。

明日は @Ndgt さんがなにか書いてくれるようです。期待しましょう!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?