質問

いQtダイアログを願います。いったいこのダイアログのresizeable.私にはどのように達成します。いろいろとろのものだが、ダイアログを開始このダイアログのサイズ変更ができます。.

うにうに設定を無効にするにはダイアログボックス/ウィジェットサイズ変更.

にも挑戦しました

setSizePolicy(QSizePolicy::Fixed);

がエラっ..

source\nimcac_settingsMain.cpp(36) : error C2248:
**'QSizePolicy::QSizePolicy' : cannot access private member declared in class 'QSizePolicy'**
        p:\ThirdPartyExports\Qt\export\4.3\4.3.1f14\include\QtGui\../../src\gui\
kernel\qsizepolicy.h(177) : see declaration of 'QSizePolicy::QSizePolicy'
        p:\ThirdPartyExports\Qt\export\4.3\4.3.1f14\include\QtGui\../../src\gui\
kernel\qsizepolicy.h(34) : see declaration of 'QSizePolicy'

親切に教えてくれるので助かります。

役に立ちましたか?

解決

あなたはすでにそれをしようとした場合、私は知らないが、QWidget::setFixedSizeはあなたが欲しいものを行う必要があります。

他のヒント

あなたはQSizePolicy::PolicyするsetSizePolicy(QSizePolicy)に合格しようとするので、あなたが得るコンパイルエラーがある、しかし、とりわけ、含むクラスである(1 QSizePolicy::PolicyQSizePolicyする(1次元のポリシーである)Policyからの暗黙の型変換はありません次元あたり(高さ、幅))。 QSizePolicyはいえ、とにかくトップレベルウィジェット(ウィンドウ)上では動作しません。

あなたが事前にダイアログのサイズを知っていれば、

setFixedSize()のみ動作します(通常はそうでない、どのような変更フォントサイズや言語で)。あなたが行うことができます。

window()->setFixedSize( window()->sizeHint() );

が、それは使用することがはるかに良いです。

window->layout()->setSizeConstraint( QLayout::SetFixedSize );

これレイアウトは、ダイアログのサイズを決定することができますが、私はあなたが求めていたものであると想定され、リサイズはできません。

this->setFixedSize(this->width(),this->height());

変更する必要があるのwindowFlagsのダイアログに設定してQt::MSWindowsFixedSizeDialogHint.

こwindows.

詳しい情報をご覧くださいこの例:http://doc.qt.digia.com/4.5/widgets-windowflags.html

ご利用の場合QtCreator(もちろんおきのプロパティを設定HorizontalsizePolicy固定および垂直方針のものを修正。その後の設定ができますそれぞれの寸法です。ユーザーがウィンドウをリサイズは最大化。

QTクリエーターで、UIエディタで、プロパティウィンドウの一番上のオブジェクトをクリックし、[レイアウトの一部で一番下にスクロールします。あなたはlayoutSizeConstraintプロパティを参照する必要があります。

layoutSizeConstraintするSetFixedSizeを設定します。

コードをいつもこのような

Dialog->resize(581, 292);
QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(WaterLevelEditorDialog->sizePolicy().hasHeightForWidth());
Dialog->setSizePolicy(sizePolicy);
Dialog->setMinimumSize(QSize(581, 292));
Dialog->setMaximumSize(QSize(581, 292));
Dialog->setSizeGripEnabled(false);

にQtCreatorいて

  1. 選択のダイアログボックスのウィジェット
  2. すると、ダイアログボックスがウィジェットにオブジェクトウインドウ
  3. オブジェクトに画面で、右クリックしダイアログボックスオブジェクトのポップアップメニュー
  4. を選択"サイズの制約"->"セットの最大サイズのメニューから"
  5. 右クリックし再度ダイアログオブジェクトのポップアップメニュー
  6. を選択"サイズの制約"->"セットの最小サイズ"
  7. 物件画面
    • の確保"sizePolicy"->"横方針"としての価値"固定"
    • の確保"sizePolicy"->"垂直方針"としての価値"固定"
    • の確保"sizeGripEnabled"をチェックしていない

Qtのドキュメントから、setSizePolicy()方法は、ゼロ引数または二つの引数を取りますが、1つの引数にすることはできませんどちらか。あなたがこのコンパイルエラーを取得する理由です。私の実験から、あなたが固定サイズを設定しない場合。このメソッドは、使用していません。ウィンドウには、まだサイズ変更が可能なことができます。

あなたはQMLでUIを設計し、QDeclarativeViewを使用して起動している場合は、以下のコードを試してみます。

QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());
.
.
.
//To make the window non-resizable
viewer->setFixedSize(viewer->width(),viewer->height());

ここでQmlApplicationViewerがQDeclarativeViewから導出されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top