இந்த பகுதியில் மற்றொரு சாளரத்தை எவ்வாறு உருவாக்குவது மற்றும் ஜி.டி.கே உடன் வடிவமைப்பது எப்படி என்று பார்ப்போம். கேள்விகளைச் சேர்ப்பது மற்றும் மூன்று பொத்தான்களைப் பயன்படுத்துதல் (50%, முடக்கம் மற்றும் பாஸ்) போன்ற சில செயல்பாடுகளையும் நாங்கள் காண்போம்.
கருவிப்பட்டி மற்றும் கருவிப்பட்டி
கருவிப்பட்டியை உருவாக்கவும்:
ஒரு கருவிப்பட்டியை உருவாக்குதல், இந்த விஷயத்தில் நாங்கள் ஒரு ஐகானை வைப்போம் (முன்னிருப்பாக பல சின்னங்களை நீங்கள் காணலாம் இங்கே) உடன் «from_stock (Gtk.Stock.IconName):
எங்கள் பயன்பாட்டில் மேலே இரண்டு பொத்தான்களைக் கொண்ட ஒரு பட்டியைக் கொண்டிருப்பதைக் காணலாம், அங்கு புதிய கேள்விகளை உருவாக்க முதலில் பயன்படுத்துவோம், இரண்டாவதாக கேள்விகளை இறக்குமதி செய்வோம் (ஒரு கோப்பு மூலம்):
கேள்விகளை உருவாக்குதல்:
முன்னர் (கருவிப்பட்டியில்) நாம் உருவாக்கிய பொத்தானைக் கிளிக் செய்யும் போது, ஒரு புதிய ஜி.டி.கே சாளரத்தைத் திறப்போம், இது எங்கள் தரவுத்தளத்தில் கேள்விகளைச் சேர்க்க அனுமதிக்கும்:
ஒரு புதிய சாளரத்தை உருவாக்க நாங்கள் ஒரு புதிய வகுப்பை உருவாக்குவோம், அதை நாங்கள் கேள்விகள் என்று அழைப்போம், மேலும் எங்கள் பயன்பாட்டு வகுப்பு ஒரு புதிய சாளரத்தை எவ்வாறு உருவாக்கும் (this.window = new Gtk.Window ();)
வரைகலை இடைமுகத்தை ஒழுங்காக உருவாக்க சில கூறுகளைப் பயன்படுத்துவோம்;
-லேபல் (கேள்விகள்)
- நுழைவு (கேள்வி எங்கே எழுதுவோம்)
-லேபல் (பதில்கள்)
- 4 கிடைமட்ட பெட்டிகளில் ஒரு நுழைவு (பதில்) மற்றும் ஒரு சுவிட்ச் (அது சரியானதா என்பதைத் தேர்ந்தெடுக்க)
-பட்டன் (முடிக்க)
அது எப்படி இருக்கிறது என்பதை நாம் காணலாம்:
உள்ளீடுகளின் உரையை நாம் பெற வேண்டிய கேள்வியைச் சேமிக்க, அவை get_text () உடன் பெறப்படுகின்றன, இது ஒரு சரத்தை வழங்குகிறது.
ஒரு சுவிட்ச் செயலில் இருக்கிறதா என்பதை அறிய அதன் முறையைப் பயன்படுத்தலாம் கிடைக்கும்_ஆக்டிவ் () இது இயக்கப்பட்டிருந்தால் உண்மை மற்றும் அது முடக்கப்பட்டிருந்தால் சுடர்.
50%, முடக்கம் மற்றும் பாஸ் பொத்தான்கள்:
-ஐம்பது%:
50% க்கு நாம் சரியான பொத்தானைப் பார்த்து மட்டுமே சரியான 2 ஐ அகற்ற வேண்டும், இந்த விஷயத்தில் அவற்றை set_sensitive (false) மூலம் ரத்து செய்கிறோம்.
முடிவு:
-உறைய:
பட்டியை மீண்டும் 0 ஆக அமைத்தோம்.
this.time_bar.set_fraction (0);
-பாஸ்:
button3.clicked.connect (() => {
this.bd_select_preguntas ();
this.next_pregunta();
});
அடுத்த பகுதி (4):
அடுத்த தவணையில், எங்கள் பயன்பாட்டின் அம்சங்களை எவ்வாறு மேம்படுத்துவது என்று பார்ப்போம், அதாவது கேள்விகள் எப்போதும் ஒரே நிலையில் தோன்றாது, பயன்பாட்டில் ஒரு ஐகானை வைக்கவும் ...
நான் பதில்களை விரும்புகிறேன் ... ஹாஹா .. வாழ்த்துக்கள்
வாலா பற்றிய இந்த கட்டுரைகள் மிகவும் நல்லது .. மற்றவர்களை நம்புகிறேன் .. வாழ்த்துக்கள்
வாலாவில் உங்கள் நுழைவு நிலுவையில் உள்ளது, பல பிரசவங்கள் இருக்கும் என்று நம்புகிறேன். அன்புடன்!
நல்ல கட்டுரை, பகிர்வுக்கு நன்றி.
, ஹலோ
இந்த பயன்பாட்டை உருவாக்குவதற்கான உங்கள் முந்தைய உள்ளீடுகளை நான் பின்பற்றினேன், இப்போது புதிய சாளரத்தின் உள்ளீடுகளை அணுக முயற்சிக்கிறேன், இப்போது நான் இதைச் செய்கிறேன், createQuestions வகுப்பின் saveC முறையில் (சாளரத்தை உருவாக்கும் வகுப்பு) .
public void saveC () {
சரம் str = questionE.get_text ();
stdout.printf ("ஒப்பந்தம்% s \ n", str);
}
ஆனால் வெளியீட்டில் நான் இதைப் பெறுகிறேன்:
(bu: 6196): Gtk-CRITICAL **: gtk_entry_get_text: `GTK_IS_ENTRY (நுழைவு) 'வலியுறுத்தல் தோல்வியுற்றது
ஒப்பந்தம் (பூஜ்யம்)
நான் சில எடுத்துக்காட்டுகளைப் பார்த்தேன் மற்றும் உள்ளீடுகளை அணுகும் முறைகளின் வரையறையில் அவர்கள் இதுபோன்ற ஒன்றைச் செய்கிறார்கள்:
வெற்றிடம் on_activate (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 உண்மையில் நான் வெவ்வேறு பெயர்களைக் கொண்டிருந்தால், ஆனால் நான் சோதனைகளில் ஒன்றை மட்டுமே பயன்படுத்துகிறேன், ஏனெனில் அவை எதுவும் நான் உள்ளீட்டில் வைத்த உரையை திருப்பித் தரவில்லை, இது மேலே குறிப்பிட்ட பிழையை எனக்கு அனுப்புகிறது:
ஆனால் வெளியீட்டில் நான் இதைப் பெறுகிறேன்:
(bu: 6196): Gtk-CRITICAL **: gtk_entry_get_text: `GTK_IS_ENTRY (நுழைவு) 'வலியுறுத்தல் தோல்வியுற்றது
ஒப்பந்தம் (பூஜ்யம்)
நான் இன்னும் விசாரிக்கிறேன் ...
சியர்ஸ். !!
இங்கே தயார் ஆதாரம், வாழ்த்துக்கள்.
http://pastebin.com/pZG8GbrY
ஹாய் ஹிராம், பாருங்கள், அதைத் தீர்க்க நீங்கள் அதை எவ்வாறு செய்ய வேண்டும் என்பதை நான் உங்களுக்குச் சொல்கிறேன், முதல் விஷயம் என்னவென்றால், நாங்கள் ஒரு புதிய சாளரத்தை உருவாக்குகிறோம் (இது முக்கியமல்ல), மற்றும் நுழைவுக்கு அழைக்கும் போது, (மன்னிக்கவும் சொற்கள்) அந்த ஷிட் ஏன் ஒரு நுழைவு ஆனால் ஒரு விட்ஜெட்டைப் போல திரும்பவில்லை என்று எனக்குத் தெரியவில்லை, ஆனால் ஏய், அதைத் தீர்க்க நீங்கள் var ஐ பயன்படுத்தி மாறும் அனைத்து நிலையான கூறுகளையும் மாற்ற வேண்டும்:
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 ());
});
இது கேள்விகள் வகுப்பினுள் உள்ளது, அது நன்றாக வேலை செய்கிறது, ஆனால் saveC இலிருந்து நுழைய விரும்பும் போது, அது தொகுக்கவில்லை, இது இந்த பிழையை எனக்கு வீசுகிறது:
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:
public void saveC () {
சரம் str = questionE.get_text ();
stdout.printf ("ஒப்பந்தம்% s \ n", str);
}
lolbimbo, நான் வாதத்தை அகற்ற முயற்சித்தேன், அது இன்னும் செயல்படவில்லை,
நான் இன்னும் சிக்கலைப் புரிந்துகொள்ள முயற்சிக்கிறேன், நான் வாலாவுக்கு புதியவன், என்னால் அதிக ஆவணங்கள் கிடைக்கவில்லை, விரைவில் தீர்வு கிடைக்கும் என்று நம்புகிறேன் அல்லது நான்காவது பகுதி xD ஐ வெளியிடுவதற்கு காத்திருக்கிறேன்.
நான் தொடர்ந்து முயற்சி செய்கிறேன் ...
வாழ்த்துக்கள்.