Π ΠΈΡ. 2.5. Qt Designer Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΈΡΡΡΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows.
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ½ΡΡΠ΅ Π½ΠΈΠ· ΡΠΎΡΠΌΡ Π²Π²Π΅ΡΡ , ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΡΠ°Π»Π° ΠΊΠΎΡΠΎΡΠ΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΡΠΌΡ, ΠΏΠΎΡ ΠΎΠΆΡΡ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ Π½Π° ΡΠΈΡ. 2.6. ΠΠ΅ ΡΡΠ°ΡΡΡΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΡΠΎΡΠΌΠ΅; ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Qt ΠΏΠΎΠ·ΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡ ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π ΠΈΡ. 2.6. Π€ΠΎΡΠΌΠ° Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌΠΈ.
ΠΠ°Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ²ΠΎΠΉΡΡΠ² Qt Designer.
1. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΌΠ΅ΡΠΊΠ΅. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ objectName (ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°) ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«labelΒ» (ΡΠ΅ΠΊΡΡΠΎΠ²Π°Ρ ΠΌΠ΅ΡΠΊΠ°), Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ text (ΡΠ΅ΠΊΡΡ) ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«&Cell LocationΒ» (ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ).
2. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ objectName ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«lineEditΒ» (ΡΡΡΠΎΠΊΠ° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ).
3. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ objectName Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«okButtonΒ» (ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ), ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ enabled (Π²ΠΊΠ»ΡΡΠ΅Π½Π°) Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«falseΒ» (Π»ΠΎΠΆΡ), ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ default (ΡΠ΅ΠΆΠΈΠΌ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) Π½Π° Β«trueΒ» (ΠΈΡΡΠΈΠ½Π°), ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ text Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«OKΒ» (ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ).
4. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ objectName Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«cancelButtonΒ» (ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡΠΌΠ΅Π½Ρ) ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ text Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«CancelΒ» (ΠΎΡΠΌΠ΅Π½ΠΈΡΡ).
5. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΌΡ ΠΌΠ΅ΡΡΡ ΡΠΎΡΠΌΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΌΠΎΠΉ ΡΠΎΡΠΌΡ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ objectName Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«GoToCellDialogΒ» (Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° ΡΡΠ΅ΠΉΠΊΡ) ΠΈ windowTitle (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°) Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«Go to CellΒ» (ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΡΡΠ΅ΠΉΠΊΡ).
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΡΠΎΠΌΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΈ &Cell Location. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Edit | Edit Buddies (ΠΡΠ°Π²ΠΊΠ° | Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ²) Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π° Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ². Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΡΠΎΠΉ ΠΌΠ΅ΡΠΊΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠΈΡΠ΅ ΠΊΡΠ°ΡΠ½ΡΡ ΡΡΡΠ΅Π»ΠΊΡ Π½Π° ΡΡΡΠΎΠΊΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΡΡΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΌΡΡΠΊΠΈ. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ° ΠΌΠ΅ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΠ°ΠΊ Cell Location ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΡΡΠΎΠΊΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΡΠ½Π΅ΡΠ°. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Click Edit | Edit Widgets (ΠΡΠ°Π²ΠΊΠ° | Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ) Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ².
Π ΠΈΡ. 2.7. ΠΠΈΠ΄ ΡΠΎΡΠΌΡ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ² Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ².
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠΎΡΠΌΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
1. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΌΠ΅ΡΠΊΠ΅ Cell Location ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΡ Shift ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΏΠΎ ΠΏΠΎΠ»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π²ΡΠ±ΠΎΡ ΡΡΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ². ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ Form | Lay Out Horizontally (Π€ΠΎΡΠΌΠ° | ΠΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ°).
2. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΠ°ΡΡΡΠΆΠΊΠ΅, Π·Π°ΡΠ΅ΠΌ, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Ρ ΠΊΠ»Π°Π²ΠΈΡΡ Shift, ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ°ΠΌ OK ΠΈ Cancel. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ Form | Lay Out Horizontally.
3. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΌΡ ΠΌΠ΅ΡΡΡ ΡΠΎΡΠΌΡ, Π°Π½Π½ΡΠ»ΠΈΡΡΡ Π²ΡΠ±ΠΎΡ Π»ΡΠ±ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ², Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ Form | Lay Out Vertically (Π€ΠΎΡΠΌΠ° | ΠΠ΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ°).
4. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ Form | Adjust Size Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΎΡΠΌΡ.
ΠΡΠ°ΡΠ½ΡΠΌΠΈ Π»ΠΈΠ½ΠΈΡΠΌΠΈ Π½Π° ΡΠΎΡΠΌΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. ΠΠ½ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π ΠΈΡ. 2.8. Π€ΠΎΡΠΌΠ° Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ Edit | Edit Tab Order (ΠΡΠ°Π²ΠΊΠ° | Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΏΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ΅ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ). Π ΡΠ΄ΠΎΠΌ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΡΠΎΠΊΡΡ, ΠΏΠΎΡΠ²ΡΡΡΡ ΡΠΈΠ½ΠΈΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ, ΡΠΎΠ±Π»ΡΠ΄Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π²Π°ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΠΎΠΊΡΡΠ°, Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ Edit | Edit Widgets Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ΅ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ.
Π ΠΈΡ. 2.9. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΠΎΠΊΡΡΠ° ΠΏΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌ ΡΠΎΡΠΌΡ.
ΠΠ»Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ Form | Preview (Π€ΠΎΡΠΌΠ° | ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ). ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΡΠΎΠΊΡΡΠ°, Π½Π°ΠΆΠΈΠΌΠ°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΊΠ»Π°Π²ΠΈΡΡ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ. ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΊΠ»Π°Π²ΠΈΡΠΈ Alt+C Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΠΎΠΊΡΡΠ° Π½Π° ΡΡΡΠΎΠΊΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Cancel Π΄Π»Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ gotocelldialog.ui Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ gotocell ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» main.cpp Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
01 #include <QApplication>
02 #include <QDialog>
03 #include "ui_gotocelldialog.h"
04 int main(int argc, char *argv[])
05 {
06 QApplication app(argc, argv);
07 Ui::GoToCellDialog ui;
08 QDialog *dialog = new QDialog;
09 ui.setupUi(dialog);
10 dialog->show();
11 return app.exec();
12 }
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ qmake Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .pro ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» makefile (ΠΊΠΎΠΌΠ°Π½Π΄Ρ qmake βproject; qmake gotocell.pro). ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ qmake Β«Ρ Π²Π°ΡΠΈΡ ΡΠΌΠ°Β» ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΡΠ°ΠΉΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° gotocelldialog.ui ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° uic β ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΡΠΎΡΡΠ°Π² ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Qt. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ uic ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ gotocelldialog.ui Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π‘++ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ui_gotocelldialog.h.
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ui_gotocelldialog.h ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Ui::GoToCellDialog, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π‘++, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ gotocelldialog.ui. Π ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅βΡΠ»Π΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΡΠΎΡΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ setupUi(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΎΡΠΌΡ. Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
class Ui::GoToCellDialog
{
public:
QLabel *label;
QLineEdit *lineEdit;
QSpacerItem *spacerItem;
QPushButton *okButton;
QPushButton *cancelButton;
β¦
void setupUi(QWidget *widget) {
β¦
}
};
Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ QtβΠΊΠ»Π°ΡΡ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΡΠΌΡ Π² main.cpp ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ QDialog ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ setupUi().
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠ°Π½Π΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ:
β’ ΠΊΠ½ΠΎΠΏΠΊΠ° OK Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π² Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ;
β’ ΠΊΠ½ΠΎΠΏΠΊΠ° Cancel Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ;
β’ ΠΏΠΎΠ»Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΠΊΡΡ, Π° ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ.
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ, Π½Π°ΠΏΠΈΡΠ°Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ QDialog ΠΈ Ui::GoToCellDialog ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ (ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΡΠΎ Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²). ΠΠΎ Π½Π°ΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΠΌΡ Π΄Π°Π΅ΠΌ ΡΡΠΎΠΌΡ Π½ΠΎΠ²ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ uic, Π½ΠΎ Π±Π΅Π· ΠΏΡΠ΅ΡΠΈΠΊΡΠ° Ui::.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ gotocelldialog.h, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
01 #ifndef GOTOCELLDIALOG_H
02 #define GOTOCELLDIALOG_H
03 #include <QDialog>
04 #include "ui_gotocelldialog.h"
05 class GoToCellDialog : public QDialog, public Ui::GoToCellDialog
06 {
07 Q_OBJECT
08 public:
09 GoToCellDialog(QWidget *parent = 0);
10 private slots:
11 void on_lineEdit_textChanged();
12 };
13 #endif
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Π΄Π΅Π»Π°Π΅ΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ gotocelldialog.cpp:
01 #include <QtGui>
02 #include "gotocelldialog.h"
03 GoToCellDialog::GoToCellDialog(QWidget *parent)
04 : QDialog(parent)
05 {
06 setupUi(this);
07 QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
08 lineEdit->setValidator(new QRegExpValidator(regExp, this));
09 connect(okButton, SIGNAL(clicked()),
10 this, SLOT(accept()));
11 connect(cancelButton, SIGNAL(clicked()),
12 this, SLOT(reject()));
13 }
14 void GoToCellDialog::on_lineEdit_textChanged()
15 {
16 okButton->setEnabled(lineEdit->hasAcceptableInput());
17 }
Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ setupUi() Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΡΠΌΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅Π½Π°ΠΌ ΠΊΠ»Π°ΡΡΠ° Ui::GoToCellDialog. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° setupUi() Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ»ΠΎΡΡ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠΈΠΏΠ° on_objectName_signalName() ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠΈΠ³Π½Π°Π»Ρ signalName() Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° objectName. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ setupUi() Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Β«ΡΠΈΠ³Π½Π°Π»βΡΠ»ΠΎΡΒ»:
connect(lineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(on_lineEdit_textChanged()));
Π’Π°ΠΊΠΆΠ΅ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Qt ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: QIntValidator, QDoubleValidator ΠΈ QRegExpValidator. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ QRegExpValidator, Π·Π°Π΄Π°Π²Π°Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Β«[AβZaβz][1β9][0β9]{0,2}Β», ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ°Ρ Π±ΡΠΊΠ²Π°, Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ΄Π½Π° ΡΠΈΡΡΠ° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 1 Π΄ΠΎ 9; Π·Π°ΡΠ΅ΠΌ ΠΈΠ΄ΡΡ Π½ΠΎΠ»Ρ, ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π΄Π²Π΅ ΡΠΈΡΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ 9. (ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΊΠ»Π°ΡΡΡ QRegExp.)