Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 303

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

Β app.setMainWidget(window);

Β window->show();

Β return app.exec();

}

7.Β ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ смоТСтС ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ прСпроцСссор для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° этого прСпроцСссора называСтся Meta Object Compiler (moc, компилятор ΠΌΠ΅Ρ‚Π°ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°) ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Qt. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅

moc
для Ρ„Π°ΠΉΠ»Π° ButtonWindow.h, сохранив Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ„Π°ΠΉΠ»Π΅ ButtonWindow.moc:

$ <b>moc ButtonWindow.h -ΠΎ ButtonWindow.moc</b>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, скомпоновав с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

moc
.

$ <b>g++ -ΠΎ button ButtonWindow.срр -I$QTDIR/include -L$QTDIR/lib -lqui</b>

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° рис. 17.3.

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image068.jpg

Рис. 17.3 

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²Π²Π΅Π»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… рассмотрим.

QPushButton
β€” Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ простой ΠΊΠ½ΠΎΠΏΠΊΠΈ, хранящий ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ Ρ€Π°ΡΡ‚Ρ€ΠΎΠ²ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΈ способный Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиш.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

QPushButton
ΠΎΡ‡Π΅Π½ΡŒ прост.

<b>QPushButton::QPushButton(const QString &amp;text, QWidget *parent,</b>

<b>Β const char* name=0);</b>

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€” тСкст ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π΄Π°Π»Π΅Π΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΈ послСдний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€” имя ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ примСняСмоС Qt для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, ΠΎΠ±Ρ‰ΠΈΠΉ для всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², β€”

QWidget
, ΠΎΠ½ управляСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ свойствами. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π°
NULL
Π² качСствС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня, ΠΏΡ€ΠΈ этом создаСтся содСрТащСС Π΅Π³ΠΎ пустоС ΠΎΠΊΠ½ΠΎ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
ButtonWindow
с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова
this
, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ вставкС ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΎΠΊΠ½Π°
ButtonWindow
.

АргумСнт

name
Π·Π°Π΄Π°Π΅Ρ‚ имя Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ использования Qt. Если ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ Qt ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, имя Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π² сообщСнии ΠΎΠ± ошибкС, поэтому Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ подходящиС ΠΈΠΌΠ΅Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ это сбСрСТСт массу Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

QPushButton
ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎ вставляСтся Π² ΠΎΠΊΠ½ΠΎ
ButtonWindow
, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° parent конструктора
QPushButton
, Π±Π΅Π· указания полоТСния ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ€Π°ΠΌΠΊΠΈ ΠΈΠ»ΠΈ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ внСшним Π²ΠΈΠ΄ΠΎΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ для создания ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса, слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Qt. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… сСйчас рассмотрим,

Π’ Qt Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΉ ряд способов размСщСния ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Π’Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ использованиС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π°

setGeometry
, Π½ΠΎ ΠΎΠ½ΠΈ Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π½Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΎΠΊΠ½Π°.

ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² β€” ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ классов

QLayout
ΠΈΠ»ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ свои Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ послС задания ΠΈΠΌ подсказок, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΡ…ΡΡ отступов ΠΈ расстояний ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ классами

QLayout
ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса
QLayout
Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ.

ΠšΠ»Π°ΡΡΡ‹ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ β€” ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚ΠΈΠΏΠ°

QObject
, Π° Π½Π΅
QWidget
, поэтому ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ. НапримСр, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
QVBoxLayout
β€” основной Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
QMainWindow
.

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ

QHBox
ΠΈ
QVBox
) Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² β€” ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ°
QWidget
ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, вас удивляСт, Ρ‡Ρ‚ΠΎ Π² Qt Π΅ΡΡ‚ΡŒ ΠΈ классы
QLayout
, ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹
QBox
с Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями. На самом Π΄Π΅Π»Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹
QBox
ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для удобства ΠΈ ΠΏΠΎ сущСству слуТат ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ классов
QLayout
Π² Ρ‚ΠΈΠΏΠ΅
QWidget
. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹
QLayout
ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ автоматичСского измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°
QWidget::resizeEvent()
.

ΠŸΠΎΠ΄ΠΊΠ»Π°ΡΡΡ‹

QLayout
:
QVBoxLayout
ΠΈ
QHBoxLayout
, β€” самый распространСнный способ создания интСрфСйса, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡ… Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Qt.

QVBoxLayout
ΠΈ
QHBoxLayout
β€” Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, хранящиС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΈ схСмы размСщСния с Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ориСнтациями соотвСтствСнно. Π’Ρ‹ смоТСтС ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ сколь ΡƒΠ³ΠΎΠ΄Π½ΠΎ слоТныС ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ допускаСтся использованиС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° счСт вставки ΠΊΠ°ΠΊ элСмСнта Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ схСмы размСщСния Π²Π½ΡƒΡ‚Ρ€ΡŒ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ конструктора

QVBoxLayout
, Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… внимания (Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
QHBoxLayout
ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ API).

<b>QVBoxLayout::QVBoxLayout(QWidget *parent, int margin, int spacing,</b>

<b>Β const char *name)</b>

<b>QVBoxLayout::QVBoxLayout(QLayout *parentLayout, int spacing,</b>

<b>Β const char * name)</b>

<b>QVBoxLayout::QVBoxLayout(int spacing, const char *name)</b>

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

QLayout
ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ°
QLayout
. Если Π½Π΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π²Ρ‹ смоТСтС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ Π΄Π°Π½Π½ΡƒΡŽ схСму размСщСния Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
QLayout
с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°
addLayout
.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ margin ΠΈ spacing Π·Π°Π΄Π°ΡŽΡ‚ пустоС пространство Π² пиксСлах Π²ΠΎΠΊΡ€ΡƒΠ³ схСмы размСщСния

QLayout
ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ Π² Π½Π΅ΠΉ.

ПослС создания вашСй схСмы размСщСния

QLayout
Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ схСмы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ°Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

<b>QBoxLayout::addWidget(QWidget *widget, int stretch = 0, int alignment = 0);</b>