কীভাবে স্লাইডিং উইজেট তৈরি করবেন (GTK +, দ্রুত)


8

সম্প্রতি আমি গেজেডে এই উইজেটটি দেখেছি:

এখানে চিত্র বর্ণনা লিখুন

আপনি টিপলে এটি উপস্থিত হয় Ctrl + F। আমি কী আগ্রহী তা কীভাবে স্লাইডিং এফেক্টটি পাওয়া যায় সে সম্পর্কে। কোন পরামর্শ প্রশংসা করা হবে।


"স্লাইডিং এফেক্ট" বলতে কী বোঝায় স্লাইডিং
এফেক্টটি বুঝতে পারছেন না

@ গৌরব_ জাভা এটি শীর্ষ প্যানেলের নীচে থেকে স্লাইডিং প্রদর্শিত হবে। যদি আপনি এটি গেইডিতে দেখতে পান তবে আপনি এটি 'Ctrl + F' টিপতে দেখবেন
অ্যাঞ্জেল আরায়া

প্রভাবটি প্রায়শই "ড্রপ-ডাউন" নামে পরিচিত, আমি বিশ্বাস করি - কখনও কখনও মেনুগুলি একইভাবে অ্যানিমেটেড হয়।
স্টিভ ক্রুন

1
আমি ভেবেছিলাম সম্ভবত আপনি সিএসএস ট্রানজিশন সম্পত্তি ব্যবহার করতে পারেন, তবে CSS তে অবস্থান পরিবর্তন করার উপায় আমি দেখছি না। জেডিট কোডটি দেখে তারা মনে করেন যে সন্ধান বাক্সে বাজারের জন্য অনুসন্ধান কাস্টম ভিউফ্রেম ব্যবহার করা হবে বাজারের.লাঞ্চপ্যাড. net / আইভিসিএস-ইম্পোর্টস / গেডিট / মাস্টার- গীত / ভিউ / হেড :/… যা তারা কিছু থিয়েটারের মডিউলের মাধ্যমে সঞ্চারিত করে (দেখুন বিজেআর এ) যদিও সি কোড পার্সিংয়ে আমি খুব একটা ভাল না।
আয়ান বি।

1
বিটিডাব্লু, এই উইজেটটি গুগল ক্রোমেও রয়েছে (এবং সম্ভবত ক্রোমিয়াম)
ইয়ান বি।

উত্তর:


7

খাঁটি জিটিকে এবং সিএসএস ব্যবহার করে আমি ফেইড-আউট ইফেক্ট অর্জন করেছি ।

এটি কেবল জিটিকে ৩.6-এ কাজ করছে এবং আমি নিশ্চিত নই যে / আউট আউট প্রভাবের কোনও স্লাইড সম্ভব হবে কিনা, তবে আপনি যদি চান তবে আপনি উত্সটি লঞ্চপ্যাড.net / ইউবার রাইটারে দেখতে পারেন

এটি একটি রাষ্ট্র-পরিবর্তন এবং তারপরে জিটিকে ট্রানজিশনের মাধ্যমে কাজ করে ... উচ্চতা // প্রস্থের সাথেও সম্ভবত এটি সম্ভব হবে।

সম্পাদনা

যেহেতু লোকেরা স্পষ্টতই আমাকে নীচে নামায়, এখানে আরও একটি বিস্তারিত ব্যাখ্যা রয়েছে:

এটি আমি ব্যবহার করেছি সিএসএস:

GtkLabel:insensitive {
    color: rgba(255,255,255,0);
    transition: 500ms ease-in-out;
}

আপনি সিএসএস হিসাবে ব্যবহার থাকেন (আমি আশা করি আমি কিভাবে যে নিজেকে থেকে একটি ব্যাখ্যা উল্লেখ করার অনুমতি দেওয়া করছি: http://wolfvollprecht.de/blog/gtk-python-and-css-are-an-awesome-combo/ ) তারপরে আপনি Gtk.StateFlagsলেবেলটি বিবর্ণ করতে ব্যবহার করতে পারেন ।

উদাহরণ:

label.set_state_flags(Gtk.StateFlags.INSENSITIVE, True)

তারপরে আপনি শূন্য अस्पष्टিতে রূপান্তর পাবেন।

তবে, যেমন আমি লক্ষ্য করেছি, সিএসএসের সাথে স্থান নির্ধারণ / প্রস্থকে প্রভাবিত করার মতো অনেকগুলি বিকল্প নেই, সুতরাং আমার ধারণা এটি রং / অস্বচ্ছতা ইত্যাদিতে সীমাবদ্ধ limited

উপভোগ করুন।

PS: নোট করুন যে এটি কেবল Gtk 3.6 এ কাজ করে, উবুন্টু 12.10 এর পরে


লোকেরা সম্ভবত হ্রাস পেয়েছিল কারণ প্রশ্নটি একটি স্লাইডিং অ্যানিমেশনের জন্য জিজ্ঞাসা করেছিল, তবে আপনি একটি অস্বচ্ছ রূপান্তর দিয়েছেন যা সম্পূর্ণ আলাদা ... সুতরাং কেন জানি না এত লোক কেন আপত্তি করেছে । যাইহোক, আজকাল আছে GtkRevealer, যা উভয় করতে পারে; দেখতে আমার উত্তর
আন্ডারস্কোর_

3

খাঁটি জিটিকে + তে এই জাতীয় অ্যানিমেশন অর্জনযোগ্য নয়। এটি প্রক্রিয়া করবে এমন কোনও ব্যবস্থা নেই।

আমি জিডিটের উত্স কোডটিতে একটি তাত্ক্ষণিক নজর দিয়েছি, এটি স্পষ্ট যে তারা নিজেরাই এই অ্যানিমেশনটি প্রক্রিয়া করে। অ্যানিমেশন সম্পর্কিত কোডটি বেশ প্রসারিত হওয়ার জন্য আমি বিশদটি দেখিনি, তবে আমি উল্লেখ করেছি যে তারা অ্যানিমেটেড অনুসন্ধান উইজেটের জন্য কায়রো অঙ্কন বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করে। সম্ভবত উইজেটটি ফ্রেম দ্বারা তার অবস্থানের ফ্রেমটি সরানো এবং একক পাঠ্য প্রদর্শনের ক্ষেত্রে ব্যবহৃত ওভারলেতে পৃথক স্থানে পুনরায় আঁকিয়ে অ্যানিমেটেড করা যায়।

এটি সহজ সমাধান বলে মনে হচ্ছে। (জিডিট কোডটি একই কোড বেসটি ভাগ করে নেওয়ার জন্য অনেক অ্যানিমেশনগুলির জন্য প্রস্তুত বলে মনে হয়, সুতরাং এটি কোনও সাধারণ অ্যাপ্লিকেশনে সঠিক অবস্থানটি ব্যবহার করা ওভারকিল হতে পারে))

এই প্রভাব পুনরুত্পাদন করতে, আপনার প্রয়োজন হবে:

  • আপনি যে UI টুকরা স্লাইড করতে বা আউট করতে চান তার জন্য একটি কাস্টম উইজেট ব্যবহার করুন।
  • এটি ড্র ইভেন্ট এবং পর্যায়ক্রমিক সময়সীমার উপর প্রতিক্রিয়া তৈরি করুন (অ্যানিমেশনের প্রতিটি ফ্রেম পুনরায় আঁকতে)
  • আপনার অবশিষ্ট উইজেটগুলির উপর একটি স্বচ্ছ ওভারলে তৈরি করুন (বা এমন কোনও অঞ্চল যা উপস্থিত হতে হবে যেন স্লাইডিং উইজেটের নীচে রয়েছে)
  • এ জাতীয় ওভারলেতে অ্যানিমেটেড উইজেটটি ম্যানুয়ালি আঁকুন।

আমি এর চেয়ে সহজ সমাধান নিয়ে আসতে পারি না। তবে, জেডিট বিকাশকারীরা জিটিকে + খুব সম্ভবত খুব কমই জানেন তা বিবেচনা করে এ জাতীয় প্রভাব অর্জনের জন্য কোনও সহজ কৌশল থাকতে পারে না।


আপনার ধারণাটি এটি "সহজতম" বলে মনে হচ্ছে। আমি ভেবেছিলাম এটি কিছু সিএসএস হ্যাকিংয়ের মাধ্যমে করা সম্ভব, তবে গেডিটের কোডটি পড়া হার্ডকডের মতো বলে মনে হচ্ছে এবং আপনি যেমন বলছেন তেমন একটি সাধারণ অনুসন্ধান বাক্স প্রবেশের চেয়েও প্রস্তুত রয়েছে। সুতরাং, আমি একটি কাস্টম উইজেট তৈরি করার চেষ্টা করব এবং প্রথমে এটি কয়েকটি ইভেন্টে ঘুরিয়ে দেব (যদি এটি সম্ভব হয় তবে কমপক্ষে)। আপনার পরামর্শের জন্য ধন্যবাদ।
gelঞ্জেল আরায়া

1

আপনি Gtk.fixed (), GObject.Toutout_add এবং ফাংশন মুভের মধ্যে একটি সমন্বয় ব্যবহার করতে পারেন, এখানে পাইথনের উদাহরণ রয়েছে:

#!, / Usr / bin / python- *
gi.repository আমদানি থেকে Gtk, GObject

ক্লাস টেস্ট উইন্ডো (Gtk.Window):
     ডিফ অ্যানিমেটেমেজ (স্ব):
        GObject.timeout_add (150, self.slideImage)

     ডিএফ স্লাইড চিত্র (স্ব):
        স্ব.পজিশনএক্স + = 50;
        যদি (স্ব.পজিশন এক্স> 800):
          self.fixedWidget.move (self.logo, self.positionX, 200)
          সত্য ফিরে        
        অন্য:
          প্রত্যাবর্তন মিথ্যা 

     Def __init __ (স্ব):
        Gtk.Window .__ init __ (স্ব, শিরোনাম = 'নিবন্ধকরণ')

        স্ব.পজিশনএক্স = 500
        self.fixedWidget = Gtk.Fixed ()
        self.fixedWidget.set_size_request (1920,1080)
        self.fixedWidget.show ()

        self.logo = Gtk.I छवि.new_from_file ('picture.png')
        self.logo.show ()
        self.fixedWidget.put (self.logo, self.positionX, 200)

        self.button1 = Gtk.Button ('ছবি স্লাইড করতে আমাকে ক্লিক করুন!')
        self.button1.show ()
        self.button1.con সংযুক্ত ('ক্লিক করা', স্ব.অ্যানিম্যাট আইমেজ)
        self.button1.set_size_request (75,30)
        self.fixedWidget.put (self.button1,750,750)
        self.add (self.fixedWidget)

টেস্টউইন্ডো = টেস্ট উইন্ডো ()
testWindow.set_size_request (1920,1080)
testWindow.set_name ( 'testWindow')
testWindow.show ()

Gtk.main ()

1

আজকাল, এই প্রশ্নের একটি সত্য উত্তর আছে। যেহেতু এটি প্রাথমিকভাবে জিজ্ঞাসা করা হয়েছিল এবং উত্তর দেওয়া হয়েছিল, তাই libgdআমি জেডিট সেই সময়টি ব্যবহার করছিলাম - যার দ্বারা উইজেট প্রকাশের কোডটি জিটিকে + তে উত্সাহিত করা হয়েছে GtkRevealer:

https://developer.gnome.org/gtk3/stable/GtkRevealer.html

GtkRevealer স্লাইডের কার্ডিনাল দিকনির্দেশনা এবং অস্বচ্ছতার উপর বিবর্ণ সহ বিভিন্ন ধরণের রূপান্তর সমর্থন করে।

সুতরাং, এই দিনগুলিতে, আপনি উইজেট যুক্ত করার মতোই সহজ যা আপনি কোনওতে রূপান্তর করতে চান এবং এর বৈশিষ্ট্যগুলি GtkRevealerব্যবহার করে ।:transition-(type|duration):reveal-child

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.