ಈ ಭಾಗದಲ್ಲಿ ನಾವು ಇನ್ನೊಂದು ವಿಂಡೋವನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಮತ್ತು ಅದನ್ನು ಜಿಟಿಕೆ ಮೂಲಕ ವಿನ್ಯಾಸಗೊಳಿಸುವುದು ಹೇಗೆ ಎಂದು ನೋಡೋಣ. ಪ್ರಶ್ನೆಗಳನ್ನು ಸೇರಿಸುವುದು ಮತ್ತು ಮೂರು ಗುಂಡಿಗಳನ್ನು ಬಳಸುವುದು (50%, ಫ್ರೀಜ್ ಮತ್ತು ಪಾಸ್) ಕೆಲವು ಕ್ರಿಯಾತ್ಮಕತೆಗಳನ್ನು ಸಹ ನಾವು ನೋಡುತ್ತೇವೆ.
ಟೂಲ್ಬಾರ್ ಮತ್ತು ಟೂಲ್ಬಟನ್
ಟೂಲ್ಬಾರ್ ರಚಿಸಿ:
ಟೂಲ್ಬಟನ್ ರಚಿಸಲಾಗುತ್ತಿದೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ ನಾವು ಐಕಾನ್ ಅನ್ನು ಹಾಕುತ್ತೇವೆ (ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನೀವು ಅನೇಕ ಐಕಾನ್ಗಳನ್ನು ಕಾಣಬಹುದು ಇಲ್ಲಿ) «from_stock ನೊಂದಿಗೆ (Gtk.Stock.IconName):
ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ನಾವು ಮೇಲ್ಭಾಗದಲ್ಲಿ ಎರಡು ಗುಂಡಿಗಳನ್ನು ಹೊಂದಿರುವ ಬಾರ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂದು ನೋಡಬಹುದು, ಅಲ್ಲಿ ನಾವು ಹೊಸ ಪ್ರಶ್ನೆಗಳನ್ನು ರಚಿಸಲು ಮೊದಲನೆಯದನ್ನು ಮತ್ತು ಎರಡನೆಯದನ್ನು ಪ್ರಶ್ನೆಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲು ಬಳಸುತ್ತೇವೆ (ಫೈಲ್ ಮೂಲಕ):
ಪ್ರಶ್ನೆಗಳನ್ನು ರಚಿಸುವುದು:
ನಾವು ಈ ಹಿಂದೆ ರಚಿಸಿದ ಬಟನ್ (ಟೂಲ್ಬಾರ್ನಲ್ಲಿ) ನಾವು ಅದರ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ, ನಾವು ಹೊಸ ಜಿಟಿಕೆ ವಿಂಡೋವನ್ನು ತೆರೆಯುತ್ತೇವೆ ಅದು ನಮ್ಮ ಡೇಟಾಬೇಸ್ಗೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಸೇರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ:
ಹೊಸ ವಿಂಡೋವನ್ನು ರಚಿಸಲು ನಾವು ಹೊಸ ವರ್ಗವನ್ನು ರಚಿಸುತ್ತೇವೆ, ಅದನ್ನು ನಾವು ಪ್ರಶ್ನೆಗಳು ಎಂದು ಕರೆಯುತ್ತೇವೆ ಮತ್ತು ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ವರ್ಗವು ಹೊಸ ವಿಂಡೋವನ್ನು ಹೇಗೆ ರಚಿಸುತ್ತದೆ (this.window = new Gtk.Window ();)
ಚಿತ್ರಾತ್ಮಕ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಕ್ರಮವಾಗಿ ರಚಿಸಲು ನಾವು ಕೆಲವು ಅಂಶಗಳನ್ನು ಬಳಸುತ್ತೇವೆ;
-ಲಾಬೆಲ್ (ಪ್ರಶ್ನೆಗಳು)
- ಪ್ರವೇಶ (ಅಲ್ಲಿ ನಾವು ಪ್ರಶ್ನೆಯನ್ನು ಬರೆಯುತ್ತೇವೆ)
-ಲಾಬೆಲ್ (ಪ್ರತಿಕ್ರಿಯೆಗಳು)
- ಎಂಟ್ರಿ (ಉತ್ತರ) ಮತ್ತು ಸ್ವಿಚ್ ಅನ್ನು ಒಳಗೊಂಡಿರುವ 4 ಸಮತಲ ಪೆಟ್ಟಿಗೆಗಳು (ಅದು ಸರಿಯಾದದ್ದೇ ಎಂದು ಆಯ್ಕೆ ಮಾಡಲು)
-ಬಟನ್ (ಪೂರ್ಣಗೊಳಿಸಲು)
ಅದು ಹೇಗೆ ಕಾಣುತ್ತದೆ ಎಂಬುದನ್ನು ನಾವು ನೋಡಬಹುದು:
ನಾವು ನಮೂದುಗಳ ಪಠ್ಯವನ್ನು ಪಡೆದುಕೊಳ್ಳಬೇಕಾದ ಪ್ರಶ್ನೆಯನ್ನು ಉಳಿಸಲು, ಅವುಗಳನ್ನು get_text () ನೊಂದಿಗೆ ಪಡೆಯಲಾಗುತ್ತದೆ, ಅದು ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ.
ಸ್ವಿಚ್ ಸಕ್ರಿಯವಾಗಿದೆಯೇ ಎಂದು ತಿಳಿಯಲು ನಾವು ಅದರ ವಿಧಾನವನ್ನು ಬಳಸಬಹುದು ಪಡೆಯಿರಿ_ಆಕ್ಟಿವ್ () ಅದು ಆನ್ ಆಗಿದ್ದರೆ ನಿಜ ಮತ್ತು ಅದು ಆಫ್ ಆಗಿದ್ದರೆ ಫ್ಲೇಸ್ ಆಗುತ್ತದೆ.
50%, ಫ್ರೀಜ್ ಮತ್ತು ಪಾಸ್ ಗುಂಡಿಗಳು:
-ಐವತ್ತು%:
50% ಗೆ ನಾವು ಸರಿಯಾದ ಗುಂಡಿಯನ್ನು ಮಾತ್ರ ನೋಡಬೇಕು ಮತ್ತು ಸರಿಯಾಗಿಲ್ಲದ 2 ಅನ್ನು ತೆಗೆದುಹಾಕಬೇಕು, ಈ ಸಂದರ್ಭದಲ್ಲಿ ನಾವು ಅವುಗಳನ್ನು set_sensitive (false) ನೊಂದಿಗೆ ರದ್ದುಗೊಳಿಸುತ್ತೇವೆ.
ಫಲಿತಾಂಶ:
-ಫ್ರೀಜ್:
ನಾವು ಬಾರ್ ಅನ್ನು ಮತ್ತೆ 0 ಗೆ ಹೊಂದಿಸಿದ್ದೇವೆ.
this.timebar.set_fraction (0);
-ಉತ್ತೀರ್ಣ:
button3.clicked.connect (() => {
this.bd_select_preguntas ();
this.next_pregunta();
});
ಮುಂದಿನ ಭಾಗ (4):
ಮುಂದಿನ ಕಂತಿನಲ್ಲಿ ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಅಂಶಗಳನ್ನು ಹೇಗೆ ಸುಧಾರಿಸುವುದು ಎಂದು ನೋಡುತ್ತೇವೆ, ಉದಾಹರಣೆಗೆ ಪ್ರಶ್ನೆಗಳು ಯಾವಾಗಲೂ ಒಂದೇ ಸ್ಥಾನದಲ್ಲಿ ಗೋಚರಿಸುವುದಿಲ್ಲ, ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಐಕಾನ್ ಇರಿಸಿ ...
ನಾನು ಉತ್ತರಗಳನ್ನು ಪ್ರೀತಿಸುತ್ತೇನೆ ... ಹಾ .. ಶುಭಾಶಯಗಳು
ವಾಲಾ ಬಗ್ಗೆ ಈ ಲೇಖನಗಳು ತುಂಬಾ ಒಳ್ಳೆಯದು .. ಇತರರು .. ಶುಭಾಶಯಗಳು ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ
ವಾಲಾದಲ್ಲಿ ನಿಮ್ಮ ಪ್ರವೇಶ ಬಾಕಿ ಉಳಿದಿದೆ, ಅನೇಕ ಎಸೆತಗಳು ಇರಲಿ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ. ಚೀರ್ಸ್!
ಒಳ್ಳೆಯ ಲೇಖನ, ಹಂಚಿಕೊಂಡಿದ್ದಕ್ಕಾಗಿ ಧನ್ಯವಾದಗಳು.
ಹಲೋ,
ಈ ಅಪ್ಲಿಕೇಶನ್ನ ರಚನೆಗಾಗಿ ನಿಮ್ಮ ಹಿಂದಿನ ನಮೂದುಗಳನ್ನು ನಾನು ಅನುಸರಿಸಿದ್ದೇನೆ, ಹೊಸ ವಿಂಡೋದ ನಮೂದುಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ನಾನು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದೇನೆ, ಈಗ ನಾನು ಈ ರೀತಿ ಮಾಡುತ್ತೇನೆ, ರಚಿಸುವ ಪ್ರಶ್ನೆಗಳ ವರ್ಗದ (ವಿಂಡೋವನ್ನು ರಚಿಸುವ ವರ್ಗ) .
ಸಾರ್ವಜನಿಕ ಅನೂರ್ಜಿತ ಸೇವ್ಸಿ () {
ಸ್ಟ್ರಿಂಗ್ str = questionE.get_text ();
stdout.printf ("ಒಪ್ಪಂದ% s \ n", str);
}
ಆದರೆ output ಟ್ಪುಟ್ನಲ್ಲಿ ನಾನು ಇದನ್ನು ಪಡೆಯುತ್ತೇನೆ:
(bu: 6196): Gtk-CRITICAL **: gtk_entry_get_text: ಪ್ರತಿಪಾದನೆ `GTK_IS_ENTRY (ಪ್ರವೇಶ) 'ವಿಫಲವಾಗಿದೆ
ಒಪ್ಪಂದ (ಶೂನ್ಯ)
ನಾನು ಕೆಲವು ಉದಾಹರಣೆಗಳನ್ನು ನೋಡಿದ್ದೇನೆ ಮತ್ತು ನಮೂದುಗಳನ್ನು ಪ್ರವೇಶಿಸುವ ವಿಧಾನಗಳ ವ್ಯಾಖ್ಯಾನದಲ್ಲಿ ಅವರು ಈ ರೀತಿ ಮಾಡುತ್ತಾರೆ:
ಅನೂರ್ಜಿತ ಆನ್_ಆಕ್ಟಿವೇಟ್ (Gtk.Entry entry) {
ಹೆಸರು = entry.get_text ();
ಮುದ್ರಿಸು ("\ n ಹಲೋ" + ಹೆಸರು + "! \ n \ n");
}
ಆದರೆ ಅವರಿಗೆ ಕೇವಲ ಒಂದು ಪ್ರವೇಶವಿದೆ ಮತ್ತು ಈ ಉದಾಹರಣೆಯಲ್ಲಿ 5 ಇವೆ, ಆದ್ದರಿಂದ ಇಲ್ಲಿ ನಾನು ಈಗಾಗಲೇ ಕಳೆದುಹೋಗಿದ್ದೇನೆ, ನೀವು ನನಗೆ ಉತ್ತಮವಾಗಿ ಮಾರ್ಗದರ್ಶನ ನೀಡಬಹುದು.
ಒಳ್ಳೆಯದು, ನೀವು ನಮೂದುಗಳನ್ನು ರಚಿಸುವಾಗ ನೀವು ಅವರಿಗೆ ಅದೇ ಹೆಸರನ್ನು ನೀಡುವುದಿಲ್ಲ, ಅವರು ಮಾಡಿದ ಪಠ್ಯವನ್ನು ಪಡೆಯಲು:
r1 = entry1.get_text();
r2 = entry2.get_text();
r3 = entry3.get_text();
r4 = entry4.get_text();
ನಿಮಗೆ ಬೇಕಾದರೆ, ಪೇಸ್ಟ್ಬಿನ್ ಹಾಕಿ ಮತ್ತು ನಾನು ಅದನ್ನು ನೋಡುತ್ತೇನೆ
lolbimbo ವಾಸ್ತವವಾಗಿ ನಾನು ಅವುಗಳನ್ನು ಬೇರೆ ಬೇರೆ ಹೆಸರಿನೊಂದಿಗೆ ಹೊಂದಿದ್ದರೆ, ಆದರೆ ನಾನು ಪರೀಕ್ಷೆಯಲ್ಲಿ ಒಂದನ್ನು ಮಾತ್ರ ಬಳಸುತ್ತಿದ್ದೇನೆ ಏಕೆಂದರೆ ಅವುಗಳಲ್ಲಿ ಯಾವುದೂ ನಾನು ನಮೂದಿನಲ್ಲಿ ಹಾಕಿದ ಪಠ್ಯವನ್ನು ಹಿಂದಿರುಗಿಸುವುದಿಲ್ಲ, ಅದು ಮೇಲೆ ತಿಳಿಸಿದ ದೋಷವನ್ನು ನನಗೆ ಕಳುಹಿಸುತ್ತದೆ:
ಆದರೆ output ಟ್ಪುಟ್ನಲ್ಲಿ ನಾನು ಇದನ್ನು ಪಡೆಯುತ್ತೇನೆ:
(bu: 6196): Gtk-CRITICAL **: gtk_entry_get_text: ಪ್ರತಿಪಾದನೆ `GTK_IS_ENTRY (ಪ್ರವೇಶ) 'ವಿಫಲವಾಗಿದೆ
ಒಪ್ಪಂದ (ಶೂನ್ಯ)
ನಾನು ಇನ್ನೂ ತನಿಖೆ ನಡೆಸುತ್ತಿದ್ದೇನೆ ...
ಚೀರ್ಸ್. !!
ಇಲ್ಲಿ ಸಿದ್ಧವಾಗಿದೆ ಮೂಲ, ಶುಭಾಶಯಗಳು.
http://pastebin.com/pZG8GbrY
ಹಾಯ್ ಹಿರಾಮ್, ನೋಡಿ, ನೀವು ಅದನ್ನು ಹೇಗೆ ಮಾಡಬೇಕೆಂದು ನಾನು ನಿಮಗೆ ಹೇಳುತ್ತೇನೆ-ಅದನ್ನು ಪರಿಹರಿಸಲು-ನಾವು ಮೊದಲು ಹೊಸ ವಿಂಡೋವನ್ನು ರಚಿಸುತ್ತಿರುವುದರಿಂದ ಇದು ಸಂಭವಿಸುತ್ತದೆ (ಇದು ಮುಖ್ಯವಲ್ಲ), ಮತ್ತು ಪ್ರವೇಶವನ್ನು ಕರೆಯುವಾಗ, ( ಪದಗಳಿಗೆ ಕ್ಷಮಿಸಿ) ಆ ಶಿಟ್ ಅದು ಪ್ರವೇಶ ಆದರೆ ವಿಜೆಟ್ನಂತೆ ಏಕೆ ಹಿಂತಿರುಗುವುದಿಲ್ಲ ಎಂದು ನನಗೆ ತಿಳಿದಿಲ್ಲ, ಆದರೆ ಹೇ, ಅದನ್ನು ಪರಿಹರಿಸಲು ನೀವು ವರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಡೈನಾಮಿಕ್ಗೆ ರಚಿಸಿದ ಎಲ್ಲಾ ಸ್ಥಿರ ಘಟಕಗಳನ್ನು ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ:
var questionE = ಹೊಸ Gtk.Entry ();
ನಂತರ ಕಾರ್ಯವು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರವೇಶದ ಒಳಗೆ ನೀವು ಪಠ್ಯವನ್ನು ಸ್ವೀಕರಿಸುತ್ತೀರಿ.
save.clicked.connect (() => {
// ಸ್ಟ್ರಿಂಗ್ str = this.questionE.get_text ();
stdout.printf ("ಒಪ್ಪಂದ% s \ n", askE.get_text ());
});
ಕೊನೆಯದಾಗಿ, ಅದನ್ನು ತೋರಿಸಲು ನೀವು ನಮೂದನ್ನು ಸೇರಿಸುವ ರೇಖೆಯನ್ನು ಬದಲಾಯಿಸಲು ಮರೆಯಬೇಡಿ:
askE.show ();
ಮಾರ್ಪಾಡಿನೊಂದಿಗೆ ನಾನು ನಿಮಗೆ ಸಂಪೂರ್ಣ ಕೋಡ್ ಅನ್ನು ಬಿಡುತ್ತೇನೆ ಇದರಿಂದ ಅದು ಈಗಾಗಲೇ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆಯೆ ಎಂದು ನೀವು ಪರಿಶೀಲಿಸಬಹುದು, ಅಂದರೆ ನೀವು ಅಪ್ಲಿಕೇಶನ್ನೊಂದಿಗೆ ಮುಂದುವರಿಯಲು ಎಲ್ಲಾ ಅಂಶಗಳನ್ನು (ಕನಿಷ್ಠ ನಮೂದುಗಳನ್ನು) ಬದಲಾಯಿಸಬೇಕು.
http://paste.desdelinux.net/5048
ಸಂಬಂಧಿಸಿದಂತೆ
ಚೇಲ್, ಇಲ್ಲಿ ಮತ್ತೆ ತೊಂದರೆಗೊಳಗಾಗಿದ್ದೇನೆ, ನನಗೆ ಸಮಸ್ಯೆಗಳಿವೆ, ನೀವು ನನಗೆ ತೋರಿಸುವ ಕೋಡ್ ಉತ್ತಮವಾಗಿದೆ, ಈವೆಂಟ್ನಲ್ಲಿ ಏನಾದರೂ ಸಂಭವಿಸುತ್ತದೆ:
save.clicked.connect (() => {
// ಸ್ಟ್ರಿಂಗ್ str = this.questionE.get_text ();
stdout.printf ("ಒಪ್ಪಂದ% s \ n", askE.get_text ());
});
ಇದು ಪ್ರಶ್ನೆಗಳ ವರ್ಗದಲ್ಲಿದೆ ಮತ್ತು ಅದು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಆದರೆ ಸೇವ್ಸಿಯಿಂದ ಪ್ರವೇಶಿಸಲು ಬಯಸಿದಾಗ, ಅದು ಕಂಪೈಲ್ ಮಾಡುವುದಿಲ್ಲ, ಅದು ನನಗೆ ಈ ದೋಷವನ್ನು ಎಸೆಯುತ್ತದೆ:
bu01.vala: 50.38-50.50: ದೋಷ: ವಾದ 1: `Questions.saveC 'ನಿಂದ` Gtk.Button.clicked' ಗೆ ಪರಿವರ್ತಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ
this.guardar.clicked.connect (this.guardarC);
^^^^^^^^^^^^^^
bu01.vala: 251.58-251.66: ಎಚ್ಚರಿಕೆ: Gtk.Stock ಅನ್ನು 3.10 ರಿಂದ ಅಸಮ್ಮತಿಸಲಾಗಿದೆ
bu01.vala: 260.59-260.67: ಎಚ್ಚರಿಕೆ: Gtk.Stock ಅನ್ನು 3.10 ರಿಂದ ಅಸಮ್ಮತಿಸಲಾಗಿದೆ
ಸಂಕಲನ ವಿಫಲವಾಗಿದೆ: 1 ದೋಷ (ಗಳು), 2 ಎಚ್ಚರಿಕೆ (ಗಳು)
ಕ್ಲಿಕ್ ಈವೆಂಟ್ ಸಂಭವಿಸಿದಾಗ ನಾನು ನಿಯತಾಂಕವನ್ನು ಹಾದುಹೋಗುವ ವಿಧಾನದಿಂದಾಗಿ ಎಂದು ನಾನು ಯೋಚಿಸಲು ಬಯಸುತ್ತೇನೆ:
this.guardar.clicked.connect (this.guardarC);
ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಮುಂಚಿತವಾಗಿ ಧನ್ಯವಾದಗಳು; ದೋಷವನ್ನು ಎಸೆಯುವ ಕೋಡ್ ಅನ್ನು ಇಲ್ಲಿ ಬಿಡುತ್ತೇನೆ: http://pastebin.com/pLzExhrb
ನಾನು ಅದನ್ನು ಪರೀಕ್ಷಿಸಿಲ್ಲ ಆದರೆ ಕ್ರಿಯೆಯಿಂದ ವಾದವನ್ನು ತೆಗೆದುಹಾಕುವುದರಿಂದ ಅದನ್ನು ದೂರ ಎಸೆಯಲಾಗುತ್ತದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.
public void saveC (Gtk.Entry askE) {
ಸ್ಟ್ರಿಂಗ್ str = questionE.get_text ();
stdout.printf ("ಒಪ್ಪಂದ% s \ n", str);
}
a:
ಸಾರ್ವಜನಿಕ ಅನೂರ್ಜಿತ ಸೇವ್ಸಿ () {
ಸ್ಟ್ರಿಂಗ್ str = questionE.get_text ();
stdout.printf ("ಒಪ್ಪಂದ% s \ n", str);
}
lolbimbo, ನಾನು ವಾದವನ್ನು ತೆಗೆದುಹಾಕಲು ಪ್ರಯತ್ನಿಸಿದೆ ಮತ್ತು ಅದು ಇನ್ನೂ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ,
ನಾನು ಇನ್ನೂ ಸಮಸ್ಯೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದೇನೆ, ನಾನು ವಾಲಾಗೆ ಹೊಸವನಾಗಿದ್ದೇನೆ ಮತ್ತು ನನಗೆ ಹೆಚ್ಚಿನ ದಾಖಲಾತಿಗಳು ಸಿಗುತ್ತಿಲ್ಲ, ಶೀಘ್ರದಲ್ಲೇ ಪರಿಹಾರವನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತೇನೆ ಅಥವಾ ನಾಲ್ಕನೇ ಭಾಗ ಎಕ್ಸ್ಡಿ ಬಿಡುಗಡೆ ಮಾಡಲು ನಾನು ಕಾಯುತ್ತೇನೆ.
ನಾನು ಪ್ರಯತ್ನಿಸುತ್ತಲೇ ಇರುತ್ತೇನೆ ...
ಗ್ರೀಟಿಂಗ್ಸ್.