Qt Designer で QMainWindow をサイズ変更不可に設定する方法はありますか? 多くのコーディング例を見ていますが、Qt Designer でできるだけ多くの UI カスタマイズを行いたいと考えています。これまでのところ、最小サイズと最大サイズを等しく設定することによってのみこれを取得できますが、ウィンドウの隅にサイズ変更矢印があり、ウィンドウの上部に「最大化」ボタンがあります。
6 に答える
私は Qt Designer を使用していません。ゼロから作成した QMainWindow のサブクラスを作成しています。サイズ変更できないウィンドウを持つために私が見つけた解決策は、すべてのウィジェットとレイアウトを設定した後に、QMainWindow でsetFixedSizeを呼び出すことです。うまく設定できていれば、手動でサイズを選択する必要はありません。sizeHintからサイズを取得できます。QMainWindow のサブクラス内で使用したコード行は次のとおりです。
setFixedSize(sizeHint());
Windows 8.1 の Qt 5.5 でこれをテストしたところ、すべて問題ないように見えました。最大化ボタンは無効になりますが、他のボタンはまだそこにあり、ユーザーが境界線に移動したときにカーソルはサイズ変更の可能性を示しません。
QMainWindow を選択すると、オブジェクトのプロパティには、@jester の回答で述べられているように、水平方向と垂直方向の両方の sizePolicy のフィールドが含まれており、それらを固定に設定できます。
常に機能するとは限らず、その理由もわかりませんでした (おそらくレイアウトが原因です)。
サイズ変更の矢印と最大化ボタンについては、Qt Creator (デザイナー) からそれを行うことができなかったので、不可能だと思います。ただし、クラスのコンストラクターに必要なコードは 1 行だけです。
setWindowFlags(Qt::Window | Qt::CustomizeWindowHint);
デフォルトでは、ウィンドウ フラグには Qt::WindowMaximizeButtonHint が含まれます。上記のフラグを設定することで、ウィンドウをカスタマイズして、指定した要素を含めることを表明しています。これにより最小化ボタンも削除されるため、それも必要な場合は Qt::WindowMinimizeButtonHint を追加する必要があります
setFixedSize
QMainWindowのプロパティを使用します。デザイナーでは、私の記憶が正しければ、水平と垂直sizePolicy
を に設定できますFixed
。