Β ListView *window = new ListView();Β app.setMainWidget(window);Β window->show();Β return app.exec();}ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΠΈΠ΄ΠΆΠ΅Ρ
QListViewQListViewItemQListViewItemQListViewItemQListViewItemΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° ListView Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ
QListViewΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΡΡΠΏΠ°ΡΡ ΠΎΡ ΡΠ²ΠΎΠΈΡ "ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ". ΠΠ½Π°ΠΊΠΈ "ΠΏΠ»ΡΡ" ΠΈ "ΠΌΠΈΠ½ΡΡ", ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΊΡΡΡΡΡ ΠΈΠ»ΠΈ ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΠΈΡ ΡΡ ΡΡΡΠΎΠΊ, Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ; Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ½ΠΈ Π·Π°Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
setRootIsDecorated
Π ΠΈΡ. 17.7
ΠΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ Π²Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ
QMainWindowQMainWindowQDialogΠΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° Ρ ΠΎΡΠΎΡΠΈ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ»Ρ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ Π»ΡΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ
QDialogΠΠ°ΡΡΠ΄Ρ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌΠΈ ΠΈ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌΠΈ (ΠΈΠ»ΠΈ Π±Π΅Π·ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Qt) Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Qt ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ»ΡΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠ½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΡ ΠΈ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½, Π² Π½Π΅Π³ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎΠ»ΡΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ ΠΎΠΊΠ½Π°.
β‘Β ΠΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π²Π²ΠΎΠ΄ Π²ΠΎ Π²ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΊΠ½Π°, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π°ΡΡ ΠΎΡΠ²Π΅Ρ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅. ΠΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ Π·Π°Ρ Π²Π°ΡΠ° Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ .
β‘Β ΠΠ΅ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ β Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΡΡΠ΄Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΅ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° ΡΠ΄ΠΎΠ±Π½Ρ Π΄Π»Ρ ΠΎΠΊΠΎΠ½ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΡΠ°Π²Π»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ.
β‘Β ΠΠΎΠ»ΡΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ β ΡΡΠΎ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠ΅Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΈΠΊΠ»Π° ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π²Π²ΠΎΠ΄Π° Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΊΠΎΠ½. ΠΠΎΠ»ΡΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ ΠΎΠΊΠ½Π° Π±ΡΠ²Π°ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π² ΡΠ΅Π΄ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²Π°ΠΆΠ½ΠΎΠΉ, ΡΡΠ΅Π±ΡΡΡΠ΅ΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΠΎΠ±ΡΡΠΈΠΉ, Π΄Π»Ρ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄
QApplication::processEventsQDialog
QDialogexecshowQLayoutΠΠ±ΡΡΠ½ΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½ ΠΊΠ»Π°ΡΡ-ΠΏΠΎΡΠΎΠΌΠΎΠΊ
QDialog#include <qdialog.h>MyDialog::MyDialog(QWidget *parent, const char *name) : QDialog(parent, name) {Β QHBoxLayout *hbox = new QHBoxLayout(this);Β hbox->addWidget(new Qlabel("Enter your name"));Β hbox->addWidget(new QLineEdit());Β hbox->addWidget(ok_pushbutton);Β hbox->addWidget(cancel_pushbutton);Β connect(ok_pushbutton, SIGNAL(clicked()), this, SLOT(accept()));Β connect(cancel_pushbutton, SIGNAL(clicked()), this, SLOT(reject()));}Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° ΡΠΈΠΏΠ°
QMainWindowMyDialogQLayoutQWidgetΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΠ΅Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ²
ok_pushbuttoncancel_pushbuttonΠ£ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
QDialogacceptrejectMyDialogΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄
execQDialog::AcceptedQDialog::RejectedMyDialog* dialog = new MyDialog(this, "mydialog");if (dialog->exec() == QDialog::Accepted) {Β // ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅Π»ΠΊΠ½ΡΠ» ΠΌΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ OKΒ doSomething();} else {Β // ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅Π»ΠΊΠ½ΡΠ» ΠΌΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Cancel ΠΈΠ»ΠΈΒ // Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΎΒ doSomethingElse();}