QMainWindow 中央ウィジェットに QGridLayout を配置する Tic Tac Toe ゲームを開発しようとしています。そこに、他のウィジェット (ボード セル) とゲーム セルを区切る線を追加する予定です。
これは可能ですか?QGridLayout 内に QLine を挿入する API が見つかりません。
これが不可能な場合、子ウィジェットを QMainWindow の中央ウィジェットに直接配置できますか? もしそうなら、どのように?
はい、コンテナー ウィジェットで 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 に含まれている場合でも)、目的のウィジェットのみを含むダイアログを作成し、生成されたコードを表示する必要があります。