4

QMainWindow 中央ウィジェットに QGridLayout を配置する Tic Tac Toe ゲームを開発しようとしています。そこに、他のウィジェット (ボード セル) とゲーム セルを区切る線を追加する予定です。

これは可能ですか?QGridLayout 内に QLine を挿入する API が見つかりません。

これが不可能な場合、子ウィジェットを QMainWindow の中央ウィジェットに直接配置できますか? もしそうなら、どのように?

4

1 に答える 1

8

はい、コンテナー ウィジェットで QGridLayout を使用して三目並べを作成できます。

行について: Qt Designer が提供する便利なツールであり、直接存在しません。実際、行はいくつかのスタイル変更を加えた QFrame です。

QFrame* line = new QFrame();
line->setGeometry(QRect(/* ... */));
line->setFrameShape(QFrame::HLine); // Replace by VLine for vertical line
line->setFrameShadow(QFrame::Sunken);

このフレームには、null 以外の高さ (または垂直フレームの場合は幅) を指定する必要があります (例: 2 ピクセル)。GUI の線は、水平または垂直のみです。

: ウィジェットが Qt Designer でどのように処理されるかわからない場合 (Qt Creator に含まれている場合でも)、目的のウィジェットのみを含むダイアログを作成し、生成されたコードを表示する必要があります。

于 2012-07-07T20:04:34.863 に答える