একটি Vala + Gtk3 অ্যাপ তৈরি করা হচ্ছে। [প্রথম অংশ]

পরে প্রথম পোস্ট আমি একটি মন্তব্য পড়েছি যে "হ্যালো ওয়ার্ল্ড" এর চেয়ে আরও জটিল কিছু দিয়ে শুরু করা ভাল তবে আমি একটি ক্রম তৈরি করব (3 ও 4) একটি সাধারণ অ্যাপ্লিকেশন তৈরির পোস্ট (vala + gtk 3 সহ)।

অ্যাপ্লিকেশনটিতে একটি সাধারণ একাধিক পছন্দ প্রশ্ন এবং উত্তর গেম (ট্রিভিয়া টাইপ) থাকবে, এতে 3 টি প্রশ্নের উত্তর দেওয়া ভুল শেষ (গেম শেষ) হবে এবং আপনার প্রতিটি প্রশ্নের জন্য যতটা সম্ভব প্রশ্নের উত্তর দেওয়া উদ্দেশ্য is সীমিত সময় উত্তর।

নকশা

আমাদের আবেদনের মূল নকশাটি হ'ল:

অ্যাপ্লিকেশন

পরে আমরা কিছু বোতাম রাখব যা আমাদের 50% (দুটি ভুল উত্তর মুছে ফেলা), সময় নিথর করে, একটি প্রশ্ন পাস করার বিকল্প দেয়। এগুলি সবই একবার ব্যবহার করা যেতে পারে, একবার ব্যবহার করে অক্ষম করা হচ্ছে।

ডিজাইন ক কোড
আমরা ডিজাইনে দেখতে পাচ্ছি যে আমরা ব্যবহার করব জিটিকে উপাদানগুলি:

উত্তর -> বোতাম।

প্রশ্ন -> লেবেল।

সময় -> অগ্রগতি বার।

ভুল / সঠিক পয়েন্ট এবং প্রশ্ন -> লেবেল।

আমরা দেখতে পাচ্ছি যে আমাদের একটি উল্লম্ব কাঠামো রয়েছে তাই আমরা উল্লম্বভাবে GBox ব্যবহার করতে পারি।

কোড

int main (স্ট্রিং [] আরগস) t Gtk.init (রেফ আরগস); var উইন্ডো = নতুন Gtk.Window (); window.title = "অ্যাপ"; window.window_position = Gtk.WindowPosition.CENTER; window.set_default_size (300, 340); window.destroy.connect (Gtk.main_quit); উইন্ডো.সেট_বার্ডার_উইথ (10); // উল্লম্ব বাক্স ভের বক্স = নতুন Gtk.Box (Gtk.Orientation.VERTICAL, 0); box.set_spacing (10); // প্রশ্ন var এর প্রশ্নটির জন্য লেবেল = নতুন Gtk.Label ("প্রশ্ন?"); // প্রগ্রেসিভ টাইম বার var সময়_বার = নতুন Gtk.ProgressBar (); সময়_বার.সেট_টেক্সট ("সময়"); সময়_বার.সেট_শো_ পাঠ্য (সত্য); // রেসপন্স বোতাম var প্রতিক্রিয়া 1 = নতুন Gtk.Button.with_label ("প্রতিক্রিয়া 1"); var resposta2 = নতুন Gtk.Button.with_label ("উত্তর 2"); var resposta3 = নতুন Gtk.Button.with_label ("উত্তর 3"); var resposta4 = নতুন Gtk.Button.with_label ("উত্তর 4"); // লেবেল তথ্য ভেরি পয়েন্টস = নতুন Gtk.Label ("পয়েন্টস: 0"); box.pack_start (প্রশ্ন); box.pack_start (সময়_বার); box.pack_start (জবাব 1); box.pack_start (রেসোস্টা 2); box.pack_start (রেসোস্টা 3); box.pack_start (রেসোস্টা 4); box.pack_start (পয়েন্ট); window.add (বাক্স); window.show_all (); Gtk.main (); প্রত্যাবর্তন 0;

2013-11-02 21:44:14 থেকে ক্যাপচার করুন

"সময়" সরানোর জন্য আমরা জি.এল.বি.টি টাইমআউট ব্যবহার করি যেখানে প্রতি 500 মিলি সেকেন্ড এটি সক্রিয় হবে (এটি এমন একটি লুপ যেখানে আমাদের বারের মান যুক্ত ভেরিয়েবল বৃদ্ধি পাবে)

GLib.Timeout.add (500, () => {// বর্তমান অগ্রগতি পান: // (0.0 -> 0%; 1.0 -> 100%) দ্বিগুণ অগ্রগতি = সময়_বার.সেট_ফ্রাকশন (); // বার আপডেট করুন: অগ্রগতি = অগ্রগতি + 0.01; সময়_বার.সেট_ফ্রাকশন (অগ্রগতি); // 100% প্রত্যাবর্তন অগ্রগতি <1.0; until) পর্যন্ত পুনরাবৃত্তি করুন;

আগ্রহের লিঙ্কগুলি 
http://www.valadoc.org/#!wiki=index (আপনি সমস্ত জিটিকে উপাদানগুলি তাদের পদ্ধতিগুলি সহ সন্ধান করতে পারেন ...)


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।

  1.   লোজনোটাক্স তিনি বলেন

    খুব ভাল, আমি আপনাকে জিজ্ঞাসা করি কীভাবে আমি এক ধরণের ট্যাবএস তৈরি করতে পারি তবে উল্লম্বভাবে, যদিও তাদের অগত্যা ট্যাব থাকতে হবে না, তারা বোতাম বা টগলব্যাটন হতে পারে, তবে আমার একটি ট্যাবের আচরণ প্রয়োজন, যে 1 টি স্পর্শ করার সময় এটির সামগ্রীটি দেখা যায় অন্য ট্যাব অক্ষম করা হয়েছে, আমি নিজেকে ব্যাখ্যা করছি কিনা তা আমি জানি না, আপনি আমাকে তদন্তের জন্য কিছু তথ্য দিতে পারেন কিনা তা দেখার জন্য আমি একটি চিত্র রেখেছি। ধন্যবাদ!

    চিত্র: http://i.imm.io/1jURw.png

    1.    ললিম্বো তিনি বলেন

      "লেআউট" বা পাঠ্য পরিবর্তন (উদাহরণস্বরূপ)?

  2.   পান্ডেভ 92 তিনি বলেন

    কাতালান পারলা

  3.   স্তব্ধ তিনি বলেন

    এটি আসলে খুব ভাল এটি আমি যা খুঁজছিলাম তার অনুরূপ কিছু, একটি প্রশ্ন, এই প্রশ্নটি কোনওভাবে টার্মিনালের সাথে যুক্ত হতে পারে?
    উদাহরণস্বরূপ: শুরু করার জন্য আমি উত্তর দেওয়ার জন্য সময় নিই আমি এটি সীমাহীন অবস্থায় রেখেছি এবং এটিই আমি করতে চাই।

    আপনি কোন ডেস্কটপ পরিবেশ ইনস্টল করতে চান?
    কেডিই
    গনোম 3
    দারুচিনি
    ঐক্য

    এবং এগুলির প্রতিটি যা টার্মিনালে তার সম্পর্কিত কমান্ডের সাথে যুক্ত ছিল, subu apt-get ইনস্টল উবুন্টু-ডেস্কটপ

    1.    ললিম্বো তিনি বলেন

      হ্যাঁ, আপনাকে কেবল প্রসেস.স্পন_কম্যান্ড_লাইন_সেন্সিক লিখতে হবে ("অ্যাপ্লিকেশনটি উবুন্টু-ডেস্কটপ ইনস্টল করুন");

      http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_command_line_sync

  4.   শৈল উরিবে তিনি বলেন

    দুর্দান্ত, আমি পোস্টটি পছন্দ করি, আমি অনুশীলন করব (এবং আমি এগিয়ে যেতে দেখি), শুভেচ্ছা জানাচ্ছি