1. Π£Π²Π΅Π»ΠΈΡΡΡΠ΅ Π²ΡΡΠΎΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π² Π½Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ.
2. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠ΅ Ctrl (Alt Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Mac) ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π³ΡΡΠΏΠΏΡ Primary Key (ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ) Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΏΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π³ΡΡΠΏΠΏΠ° (ΠΈ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ) Π½Π°Π΄ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠ΅ΡΠ΅ΡΠ°ΡΠΈΡΠ΅ ΡΡΡ ΠΊΠΎΠΏΠΈΡ Π½ΠΈΠΆΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π³ΡΡΠΏΠΏΠ°, ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π°ΠΆΠΈΠΌΠ°Ρ ΠΊΠ»Π°Π²ΠΈΡΡ Ctrl (ΠΈΠ»ΠΈ Alt). ΠΠΎΠ²ΡΠΎΡΠΈΡΠ΅ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π³ΡΡΠΏΠΏΠ°, ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ Π΅Π³ΠΎ Π½ΠΈΠΆΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π³ΡΡΠΏΠΏΠ°.
3. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ title Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Β«&Secondary KeyΒ» (Π²ΡΠΎΡΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ) ΠΈ Β«&Tertiary KeyΒ» (ΡΡΠ΅ΡΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ).
4. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡΠΆΠΊΡ ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π΅Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π³ΡΡΠΏΠΏΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π³ΡΡΠΏΠΏΡ Π²ΡΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°.
5. Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Π² ΡΠ΅ΡΠΊΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 2.12 (Π°).
6. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΠΎΡΠΌΠ΅, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ±ΠΎΡ Π»ΡΠ±ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ², Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ΅Π½Ρ Form | Lay Out in a Grid (Π€ΠΎΡΠΌΠ° | Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π² ΡΠ΅ΡΠΊΠ΅). Π€ΠΎΡΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π½Π° ΡΠΈΡ. 2.12 (Π±).
7. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ sizeHint (Β«ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉΒ» ΡΠ°Π·ΠΌΠ΅Ρ) Π΄Π²ΡΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡΠΆΠ΅ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ [20, 0].
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π² ΡΡΠ΅ΠΉΠΊΠ°Ρ ΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° ΡΡΠΎΠ»Π±ΡΠ° ΠΈ ΡΠ΅ΡΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ β Π²ΡΠ΅Π³ΠΎ Π²ΠΎΡΠ΅ΠΌΡ ΡΡΠ΅Π΅ΠΊ. ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π³ΡΡΠΏΠΏΠ° ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, Π»Π΅Π²Π°Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΠΏΠΎΡΠΊΠ°, ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π³ΡΡΠΏΠΏΠ° Π²ΡΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π³ΡΡΠΏΠΏΠ° ΡΡΠ΅ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° β ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄Π½Ρ ΡΡΠ΅ΠΉΠΊΡ. ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ OK, Cancel ΠΈ More, Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π΅ ΡΡΠ΅ΠΉΠΊΠΈ. Π‘ΠΏΡΠ°Π²Π° Π²Π½ΠΈΠ·Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π±ΡΠ΄Π΅Ρ Π΄Π²Π΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ Π΄ΡΡΠ³Π°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°, ΠΎΡΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅ Π²ΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π°.
Π ΠΈΡ. 2.12. Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΡΠΌΡ Π² ΡΠ΅ΡΠΊΠ΅.
ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΠΎΡΠΌΡ Π½Π° Β«SortDialogΒ» (Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ) ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π° Β«SortΒ» (ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°). ΠΠ°Π΄Π°ΠΉΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 2.13.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ΅Π½Ρ Edit | Edit Tab Order. Π©Π΅Π»ΠΊΠ°ΠΉΡΠ΅ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅ΠΌΡ ΡΠΏΠΈΡΠΊΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ Π½ΠΈΠΆΠ½ΠΈΠΌ, Π·Π°ΡΠ΅ΠΌ ΡΠ΅Π»ΠΊΠ°ΠΉΡΠ΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ OK, Cancel ΠΈ ΠΠΎΠ³Π΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π°. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ΅Π½Ρ Edit | Edit Widgets Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ΅ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΡΠΌΠ° ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π°, ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Β«ΡΠΈΠ³Π½Π°Π»βΡΠ»ΠΎΡΒ». Qt Designer ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΌΡ. ΠΠ°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄Π²Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ΅Π½Ρ Edit | Edit Signals/Slots (ΠΡΠ°Π²ΠΊΠ° | Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π»Ρ ΠΈ ΡΠ»ΠΎΡΡ) Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π° Π² ΡΠ΅ΠΆΠΈΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² Qt Designer. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠΈΠ½ΠΈΠΌΠΈ ΡΡΡΠ΅Π»ΠΊΠ°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌΠΈ ΡΠΎΡΠΌΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΠΌΠΈ Π²ΡΠ±ΡΠ°Π½ ΡΠ°Π±Π»ΠΎΠ½ Β«Dialog with Buttons RightΒ», ΠΊΠ½ΠΎΠΏΠΊΠΈ OK ΠΈ CanceI ΡΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΡΠ»ΠΎΡΠ°ΠΌ accept() ΠΈ reject() Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° QDialog. ΠΡΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½Ρ Π² ΠΎΠΊΠ½Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈ ΡΠ»ΠΎΡΠΎΠ² Qt Designer.
Π ΠΈΡ. 2.13. ΠΠΌΠ΅Π½Π° Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΡΠΎΡΠΌΡ.
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌΠΈ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅ΠΌΡ ΡΠΈΠ³Π½Π°Π», ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΊΡΠ°ΡΠ½ΡΡ ΡΡΡΠ΅Π»ΠΊΡ Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠΌ β ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΌ ΡΠΈΠ³Π½Π°Π»Π° ΠΈ ΠΎΡΠΏΡΡΡΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΡ ΠΌΡΡΠΊΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π½ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ Π²ΡΠ±ΡΠ°ΡΡ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π» ΠΈ ΡΠ»ΠΎΡ.
Π ΠΈΡ. 2.14. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΡΠΎΡΠΌΡ.
Π‘Π½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ moreButton ΠΈ secondaryGroupBox. Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΡΡΠΈ Π΄Π²Π° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° ΠΊΡΠ°ΡΠ½ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ, Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ toggled(bool) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠ³Π½Π°Π»Π° ΠΈ setVisible(bool) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»ΠΎΡΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Qt Designer Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ»ΠΎΡΠΎΠ² setVisible(bool), Π½ΠΎ ΠΎΠ½ ΠΏΠΎΡΠ²ΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ Β«Show all signals and slotsΒ» (ΠΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ ΠΈ ΡΠ»ΠΎΡΡ).
Π ΠΈΡ. 2.15. Π Π΅Π΄Π°ΠΊΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² QtDesigner.
ΠΡΠΎΡΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ toggled(bool) Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° moreButton ΠΈ ΡΠ»ΠΎΡΠΎΠΌ setVisible(bool) Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° tertiaryGroupBox. ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ΅Π½Ρ Edit | Edit Widgets Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ sortdialog.ui Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ sort. ΠΠ»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΠΎΡΠΌΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΌΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π΄Π»Ρ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Β«Go-to-CellΒ».
Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ» sortdialog.h ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
01 #ifndef SORTDIALOG_H
02 #define SORTDIALOG_H
03 #include <QDialog>
04 #include "ui_sortdialog.h"
05 class SortDialog : public QDialog, public Ui::SortDialog
06 {
07 Q_OBJECT
08 public:
09 SortDialog(QWidget *parent = 0);
10 void setColumnRange(QChar first, QChar last);
11 };
12 #endif
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅ΠΌ sortdialog.cpp:
01 #include <QtGui>
02 #include "sortdialog.h"
03 SortDialog::SortDialog(QWidget *parent)
04 : QDialog(parent)
05 {
06 setupUi(this);
07 secondaryGroupBox->hide();
08 tertiaryGroupBox->hide();
09 layout()->setSizeConstraint(QLayout::SetFixedSize);
10 setColumnRange('Π', 'Z');
11 }
12 void SortDialog::setColumnRange(QChar first, QChar last)
13 {
14 primaryColumnCombo->clear();
15 secondaryColumnCombo->clear();
16 tertiaryColumnCombo->clear();
17 secondaryColumnCombo->addItem(tr("None"));
18 tertiaryColumnCombo->addItem(tr("None"));
19 primaryColumnCombo->setMinimumSize(
20 secondaryColumnCombo->sizeHint());
21 QChar ch = first;
22 while (ch <= last) {
23 primaryColumnCombo->addItem(QString(ch));
24 secondaryColumnCombo->addItem(QString(ch));
25 tertiaryColumnCombo->addItem(QString(ch));
26 ch = ch.unicode() + 1;
27 }
28 }
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΡΡΡΠ΅Ρ ΡΡ ΡΠ°ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π³Π΄Π΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΏΠΎΠ»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΈ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ sizeConstraint ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΡΠΎΡΠΌΡ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ QLayout::SetFixedSize, Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ·ΠΌΠ΅-
ΠΡ ΡΠΎΡΡΠ°Π²ΠΈΡΠ΅Π»Ρ. Π‘ΡΡΠ°Π½ΠΈΡΠ° β42 Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ DjVu Π±ΡΠ»Π° ΠΏΡΠΎΠΏΡΡΠ΅Π½Π°! Π£ ΠΊΠΎΠ³ΠΎ Π΅ΡΡΡ β Π²ΡΡΠ°Π²ΡΡΠ΅.
Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ Π² Qt Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΡ ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½, ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΡΡΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Qt Designer. Π’Π°ΠΊΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
β’ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠΌ ΠΎΠΊΠ½ΠΎ Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ QTabWidget. ΠΠ΄Π΅ΡΡ ΡΠ²Π΅ΡΡ Ρ ΠΎΠΊΠ½Π° ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΠΎΠ»ΠΎΡΠΊΠ° Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΊΠ° QStackedWidget;
β’ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ QListWidget ΠΈ ΡΡΠ΅ΠΊ QStackedWidget, Π³Π΄Π΅ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΡΠ΅ΠΊΠΎΠΌ QStackedWidget, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ² ΡΠ²ΡΠ·Ρ ΡΠΈΠ³Π½Π°Π»Π° QListWidget::currentRowChanged() ΡΠΎ ΡΠ»ΠΎΡΠΎΠΌ QStackedWidget::setCurrentIndex();
β’ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ QTreeWidget ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎ ΡΡΠ΅ΠΊΠΎΠΌ QStackedWidget, ΠΊΠ°ΠΊ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΠ»Π°ΡΡ ΡΡΠ΅ΠΊΠ° QStackedWidget ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π² Π³Π»Π°Π²Π΅ 6 (Β«Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΎΠΉΒ»).
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΠΉΠ»ΠΎΠ² .ui, ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ Π² Qt Designer, Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° .ui ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ uic Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π‘++ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»Π°ΡΡ QUiLoader:
QUiLoader uiLoader;
QFile file("sortdialog.ui");
QWidget *sortDialog = uiLoader.load(&file);
if (sortDialog) {
β¦
}
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌ ΡΠΎΡΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ QObject::findChild<T>():
QComboBox *primaryColumnCombo =
sortDialog->findChild<QComboBox *>("primaryColumnCombo");
if (primaryColumnCombo) {
β¦
}
Π€ΡΠ½ΠΊΡΠΈΡ findChild<T>() ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉβΡΠ»Π΅Π½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡΠΈΠΏΡ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π΄Π»Ρ MSVC 6 ΠΈΠ·-Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ MSVC 6, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ qFindChild<T>(), ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅.
ΠΠ»Π°ΡΡ QUiLoader ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° QUiLoader Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Qt ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ°ΠΉΠ» .pro ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ:
CONFIG += uitools
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΡΠΌΡ Π±Π΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Β«ΡΠΎΠ½ΠΊΠΈΡ Β» ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΡΠΌΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π° Π²ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.