β‘ QCheckBox β Π²ΠΈΠ΄ΠΆΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ°;
β‘ QRadioButton β Π²ΠΈΠ΄ΠΆΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π² Π³ΡΡΠΏΠΏΠ΅ ΡΠ°ΠΊΠΈΡ ΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°ΠΊΡΠΈΠ²Π½Π° Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
QPushButtonQPushButton β ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΠ±ΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΡΠ΅ΠΊΡΡ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ "OK" ΠΈΠ»ΠΈ "Cancel" ΠΈ/ΠΈΠ»ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΊ Π²ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° QButton, ΠΎΠ½Π° ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠ³Π½Π°Π» clicked ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ ΡΠΎ ΡΠ»ΠΎΡΠΎΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΡ ΡΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ QPushButton Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΈ Π΅ΡΡΡ Π»ΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ Π΄Π΅ΡΠ°Π»Ρ, ΠΊΠ°ΡΠ°ΡΡΠ°ΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π³ΠΎ ΠΈΠ· Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Qt. ΠΠ½ΠΎΠΏΠΊΡ QPushButton ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π½Π΅ ΠΏΠΎΠΌΠ½ΡΡΠ΅ΠΉ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π² ΠΊΠ½ΠΎΠΏΠΊΡ-Π²ΡΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ (Ρ.Π΅. ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ), Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ setToggleButton. (ΠΡΠ»ΠΈ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° GTK+ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π³Π»Π°Π²Ρ Π΅ΡΡΡ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π·Π½ΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ.)
ΠΠ°Π»Π΅Π΅ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
#include <qpushbutton.h>
QPushButton(QWidget *parent, const char *name = 0);
QPushButton(const QString& text, QWidget *parent, const char *name = 0);
QPushButton(const QIconSet& icon, const QString& text,
QWidget *parent, const char * name = 0);
void QPushButton::setToggleButton(bool);
QCheckBoxQCheckBox β ΡΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠΈΡΡ (ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ ΡΠ±ΡΠΎΡΠΈΡΡ). ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ QCheckBox Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠΈΠ»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (Motif, Windows ΠΈ Ρ.Π΄.), Π½ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ»Π°ΠΆΠΎΠΊ Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΠΏΡΠ°Π²Π°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ QCheckBox Π² ΡΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ "Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ". ΠΠ½ΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΠ΅Π΄ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ±ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° QCheckBox (ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠ»Π°ΠΆΠΎΠΊ), Π½ΠΎ Ρ ΠΎΡΠΈΡΠ΅ Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ±ΠΎΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ Π½Π°ΡΡΠ΄Ρ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΈ ΡΠ±ΡΠΎΡΠΎΠΌ.
#include <qcheckbox.h>
QCheckBox(QWidget *parent, const char *name = 0);
QCheckBox(const QString& text, QWidget *parent, const char *name = 0);
bool QCheckBox::isChecked();
void QCheckBox::setTristate(bool y = TRUE);
bool QCheckBox::isTristate();
QRadioButtonΠ Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ β ΠΊΠ½ΠΎΠΏΠΊΠΈ-ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π²ΡΠ±ΠΎΡΠ°, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΠ· Π³ΡΡΠΏΠΏΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ (Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΡΠ½ΠΎΠ²Π° ΡΡΠ°ΡΡΠ΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠ°Π΄ΠΈΠΎΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Π±Π»ΠΎΠΊΠ°). Π‘Π°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ QRadioButton Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ QCheckBox, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ QButtonGroup, Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΆΠ΅ ΠΈΡ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΡΡΠ³Π»ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π° Π½Π΅ ΠΊΠ°ΠΊ ΡΠ»Π°ΠΆΠΊΠΈ.
QButtonGroup β Π²ΠΈΠ΄ΠΆΠ΅Ρ, ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π³ΡΡΠΏΠΏ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π·Π° ΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΄ΠΎΠ±Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
#include <qbuttongroup.h>
QButtonGroup(QWidget *parent = 0, const char* name = 0);
QButtonGroup(const QString& title, QWidget* parent = 0,
const char * name = 0);
int insert (QButton *button, int id = -1);
void remove(QButton *button);
int id(QButton *button) const;
int count() const;
int selectedId() const;
ΠΡΠΈΠΌΠ΅Π½ΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ QButtonGroup ΠΏΡΠΎΡΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ: ΠΎΠ½ Π΄Π°ΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΠΌΠΊΡ Π²ΠΎΠΊΡΡΠ³ ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ title.
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² QButtonGroup ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° insert ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ QButtonGroup Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠ»Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π³ΡΡΠΏΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ id Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ insert. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Ρ.ΠΊ. ΡΡΠ½ΠΊΡΠΈΡ selectedId Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ id Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
ΠΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ QRadioButton, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π² Π³ΡΡΠΏΠΏΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Ρ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ.
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² QRadioButton ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡ:
#include <qradiobutton.h>
QRadioButton(QWidget* parent, const char* name = 0);
QRadioButton(const QString& text, QWidget *parent, const char *name = 0);
bool QRadioButton::isChecked();
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 17.5.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 17.5. ΠΠΈΠ΄ΠΆΠ΅Ρ QButtonΠ’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Qt. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π΄Π°Π»Π΅Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² (ΡΠ°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡΠ»Π°ΠΆΠΊΠΈ ΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ), ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
1. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ°ΠΉΠ» Buttons.h:
#include <qmainwindow.h>
#include <qcheckbox.h>
#include <qbutton.h>
#include <qradiobutton.h>
class Buttons : public CMainWindow {
Q_OBJECT
public:
Buttons(QWidget *parent = 0, const char *name = 0);
2. ΠΡ Π·Π°ΠΏΡΠΎΡΠΈΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠΎΠ·ΠΆΠ΅, Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»ΠΎΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΡΠ²ΠΈΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ PrintActive Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ private Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°:
private:
void PrintActive(QButton *button);
QCheckBox *checkbox;
QRadioButton *radiobutton1, *radiobutton2;
private slots:
void Clicked();
}
3. ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΠΉΠ» Buttons.ΡΡΡ:
#include "Buttons.moc"
#include <qbuttongroup.h>
#include <qpushbutton.h>
#include <qapplication.h>
#include <qlabel.h>
#include <qlayout.h>
#include <iostream>
Buttons::Buttons(QWidget *parent, const char *name) :
QMainWindow(parent, name) {
QWidget* widget = new QWidget(this);
setCentralWidget(widget);
QVBoxLayout *vbox = new QVBoxLayout(widget, 5, 10, "vbox");
checkbox = new QCheckBox("CheckButton", widget, "check");
vbox->addWidget(checkbox);
4. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ QButtonGroup Π΄Π»Ρ Π΄Π²ΡΡ Π²Π°ΡΠΈΡ ΡΠ°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ (ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ).
QButtonGroup *buttongroup = new QButtonGroup(0);
radiobutton1 = new QRadioButton("RadioButton1", widget, "radio1");
buttongroup->insert(radiobutton1);
vbox->addWidget(radiobutton1);
radiobutton2 = new QRadioButton("RadioButton2", widget, "radio2");
buttongroup->insert(radiobutton2);
vbox->addWidget(radiobutton2);
QPushButton* button = new QPushButton("Ok", widget, "button");
vbox->addWidget(button);
resize(350, 200);
connect(button, SIGNAL(clicked()), this, SLOT(Clicked()));
}
5. ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ QButton:
void Buttons::PrintActive(QButton *button) {
if (button->isOn())
std::cout << button->name() << " is checked\n";
else
std::cout" << button->name() << " is not checked\n";
}
void Buttons::Clicked(void) {
PrintActive(checkbox);
PrintActive(radiobutton1);
PrintActive(radiobutton2);
std::cout << "\n";
}
int main(int argc, char **argv) {
QApplication app(argc, argv);
Buttons *window = new Buttons();
app.setMainWidget(window);
window->show();
return app.exec();
}
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΡΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ Qt ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ². ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΡ PrintActive Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ (Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΈΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π°). ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ»Π°ΠΆΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ (ΡΠ°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ). Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ·ΠΎΠ²Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ (Ρ.ΠΊ. ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° Π² Π³ΡΡΠΏΠΏΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π°), ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΠ΅Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ. Π ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ QButtonGroup Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π³ΡΡΠΏΠΏΠ΅ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
QComboBox
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ (ΡΠ°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ) β ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², ΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ΅ΡΡΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅. ΠΡΠ»ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΠΈ, ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ ΠΈΠ·-ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ°ΡΡΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΡΡΠΈΠΌΠΎΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠ½Π°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° Ρ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΌΡΡ ΠΌΠ΅Π½Ρ, ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΌΡΡ ΡΠΏΠΈΡΠΊΠΎΠΌ (combo box). ΠΠ°ΡΠΈΠ°Π½ΡΡ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ΅Π»ΠΊΠ°Π΅ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ ΠΌΠ΅Π½Ρ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠΏΠΈΡΠΊΠ΅.
Π Π²ΠΈΠ΄ΠΆΠ΅ΡΠ΅ QComboBox ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² QLineEdit ΠΈ QPushButton ΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΡ ΡΡ ΠΌΠ΅Π½Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΠ· Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ².
QComboBox ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ, ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ°ΠΊ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π²Π΅ΡΡΠΈ Π½ΠΎΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΌ; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π²ΡΠ±ΠΎΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΠ· ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΡΠΏΠΈΡΠΊΠ°.