ইউনিটি সূচক কীভাবে তৈরি করবেন?


25

আমি ityক্য সূচকগুলিতে আগ্রহী এবং সেগুলি কীভাবে প্রোগ্রাম করবেন সে সম্পর্কে কোনও টিউটোরিয়াল আছে কিনা তা নিয়ে অবাক হয়েছি। আমি বিদ্যমানগুলির উত্সগুলিকে শেষ অবলম্বন হিসাবে ব্যবহার করতে পারি তবে আমি আরও বন্ধুত্বপূর্ণ পদ্ধতির পছন্দ করব কারণ আমার প্রোগ্রামিং দক্ষতা যথেষ্ট সীমাবদ্ধ।


সম্পর্কিত লিঙ্কগুলি: Askubuntu.com/q/46746/17789 Askubuntu.com/q/46761/17789
কন-এফ-ব্যবহার

এই উত্তরটিও পরীক্ষা করে দেখুন । এটি সিস্টেম সূচকটি কীভাবে তৈরি করবেন তা বর্ণনা করে , এতে অ্যাপের সূচকের চেয়ে আরও বেশি সম্ভাবনা রয়েছে। আমি কিছুটা পরীক্ষা-নিরীক্ষা করেছি এবং সাউন্ড এবং ব্লুটুথ সূচকের মতো ইউনিটির ডিফল্ট সিস্টেম সূচকগুলিও দেখেছি; এবং আমার নিজের উদাহরণ, স্ক্রিনটুলস ইন্ডিকেটর নিয়ে এসেছে , যা বোতাম এবং স্লাইডারও ব্যবহার করে । আমি সি বেছে নিলাম কারণ স্নিথেশারের উদাহরণগুলি সিতে ছিল তবে GLib এর জন্য একটি সি ++ র‌্যাপারও রয়েছে (গ্লিমিমিএম)।
Okaresz

উত্তর:


21

উদাহরণ এবং এপিআই ডক্স সহ অ্যাপ্লিকেশন সূচক ডকুমেন্টেশন এখানে উপলভ্য:

এখনও অ্যাপ্লিকেশন সূচকগুলিতে এখনও টিউটোরিয়াল নেই, তবে অ্যাপ্লিকেশন বিকাশকারী সাইটের টিউটোরিয়াল বিভাগে আরও সামগ্রীর জন্য টিউন করুন:


2
আচমকা। এই সমস্ত লিঙ্কগুলি পুরানো এবং বার্তা 'পৃষ্ঠা পাওয়া যায় না' বাড়ে। আমি খুঁজে পেতে পারে যে কোন নতুন সংস্থান আছে? অফিসিয়াল বিকাশকারী.বুন্টু. com/ apps/ qML/ cookbook/…Is there any tutorial for programming Unity indicators? শিরোনাম হিসাবে এই প্রশ্নের সাইটের লিঙ্ক করে ।
ড্যানিয়েল ডব্লিউ

সর্বত্র ভাঙ্গা লিঙ্কগুলি, অ্যাপ্লিকেশন- ইন্ডিকেটরগুলি wiki.ubuntu.com / ডেস্কটপএক্স্পেরিয়েন্সটিম / অ্যাপ্লিকেশন ইন্ডিকেটরগুলি দেখুন , libappindicator-docপ্যাকেজের HTML হিসাবে এটির এপিআই রেফারেন্স ।
user.dz

1
নিখোঁজ ডকুমেন্টেশনে একটি বাগ দায়ের করা আছে: bugs.launchpad.net/ubuntudeلافerportal
জর্জে কাস্ত্রো

4

এখানে সি-তে একটি অ্যাপ সূচক উদাহরণ রয়েছে এটি উবুন্টু উইকিতে প্রদত্ত উদাহরণটির "কেবল সূচক" সংস্করণ (কোনও উইন্ডো নয়) :

#include <libappindicator/app-indicator.h>

static void activate_action (GtkAction *action);

static GtkActionEntry entries[] = {
    {"New",  "document-new",     "_New",  "<control>N",
        "Create a new file",    G_CALLBACK(activate_action)},
    {"Open", "document-open",    "_Open", "<control>O",
        "Open a file",          G_CALLBACK(activate_action)},
    {"Save", "document-save",    "_Save", "<control>S",
        "Save file",            G_CALLBACK(activate_action)},
    {"Quit", "application-exit", "_Quit", "<control>Q",
        "Exit the application", G_CALLBACK(gtk_main_quit)},
};
static guint n_entries = G_N_ELEMENTS(entries);

static const gchar *ui_info =
"<ui>"
"  <popup name='IndicatorPopup'>"
"    <menuitem action='New' />"
"    <menuitem action='Open' />"
"    <menuitem action='Save' />"
"    <menuitem action='Quit' />"
"  </popup>"
"</ui>";

static void activate_action(GtkAction *action)
{
    const gchar *name = gtk_action_get_name (action);
    GtkWidget *dialog;

    dialog = gtk_message_dialog_new(NULL,
                                    GTK_DIALOG_DESTROY_WITH_PARENT,
                                    GTK_MESSAGE_INFO,
                                    GTK_BUTTONS_CLOSE,
                                    "You activated action: \"%s\"",
                                    name);

    g_signal_connect(dialog, "response", 
                     G_CALLBACK(gtk_widget_destroy), NULL);

    gtk_widget_show(dialog);
}

int main(int argc, char **argv)
{
    GtkWidget*      indicator_menu;
    GtkActionGroup* action_group;
    GtkUIManager*   uim;
    AppIndicator* indicator;
    GError* error = NULL;

    gtk_init(&argc, &argv);

    /* Menus */
    action_group = gtk_action_group_new("AppActions");
    gtk_action_group_add_actions(action_group, entries, n_entries,
                                 NULL);

    uim = gtk_ui_manager_new();
    gtk_ui_manager_insert_action_group(uim, action_group, 0);

    if (!gtk_ui_manager_add_ui_from_string(uim, ui_info, -1, &error)) {
        g_message("Failed to build menus: %s\n", error->message);
        g_error_free(error);
        error = NULL;
    }

    /* Indicator */
    indicator = app_indicator_new("example-simple-client",
                                  "go-jump",
                                  APP_INDICATOR_CATEGORY_APPLICATION_STATUS);

    indicator_menu = gtk_ui_manager_get_widget(uim, "/ui/IndicatorPopup");

    app_indicator_set_status(indicator, APP_INDICATOR_STATUS_ACTIVE);
    app_indicator_set_attention_icon(indicator, "indicator-messages-new");

    app_indicator_set_menu(indicator, GTK_MENU(indicator_menu));

    gtk_main();

    return 0;
}

লিঙ্ক 404
রিং Ø 12

@ রিং- সম্পাদিত সার্জেজের উত্তর, কাজের লিঙ্কটি যুক্ত হয়েছে। কার্যকরভাবে, এটি জর্জের উত্তরের মতো একই লিঙ্ক।
সের্গেই কলডিয়াজনি

1

আমি পাইথন মধ্যে একটি স্টপ ওয়াচ অ্যাপ্লিকেশন সূচকটি তৈরি করার জন্য এখানে একটি ছোট টিউটোরিয়াল যা করেছে: http://www.steshadoku.com/blog/2017/elapses-creating-a-unity-stopwatch-indicator-w-python/

import gobject
import gtk
import appindicator
import os, sys
import time
from datetime import timedelta

if __name__ == "__main__":

    saveseconds = 0 #global variable to save how many seconds the clock has run
    dir_path = os.path.dirname(os.path.realpath(__file__))
    source_id = ""

    def on_timer(args=None):
      savetime = int(time.time() - timestart) + saveseconds
      ind.set_label(str(timedelta(seconds=savetime)))
      return True

    def finish(args=None):
        sys.exit()
        return True

    def stoptime(args=None):
        #print(source_id)
        global saveseconds
        saveseconds += int(time.time() - timestart)
        gtk.timeout_remove(source_id)
        return True

    def starttime(args=None):
        global timestart
        timestart = time.time()
        global source_id
        source_id = gtk.timeout_add(1000, on_timer)
            #sets timer to run every 1s
        return True

    def cleartime(args=None):
        global saveseconds
        saveseconds = 0
        ind.set_label(str(timedelta(seconds=0)))
        gtk.timeout_remove(source_id)
        return True

    #format below is category name, icon
    ind = appindicator.Indicator ("simple-clock-client", "hourglass", appindicator.CATEGORY_APPLICATION_STATUS, dir_path)
    ind.set_status (appindicator.STATUS_ACTIVE)
    ind.set_label("Elapses"); #name of program and initial display

    ##Setup Menu Items
    menu = gtk.Menu()

    stop = gtk.MenuItem("Stop")
    stop.connect("activate", stoptime)
    stop.show()
    menu.append(stop)

    start = gtk.MenuItem("Start")
    start.connect("activate", starttime)
    start.show()
    menu.append(start)

    clear = gtk.MenuItem("Clear")
    clear.connect("activate", cleartime)
    clear.show()
    menu.append(clear)

    exit = gtk.MenuItem("Exit")
    exit.connect("activate", finish)
    exit.show()
    menu.append(exit)

    ind.set_menu(menu) #set the menu with added items
    gtk.main()

1
আমি আসল কোডটি সন্ধান করিনি, তবে একটি জিনিসের জন্য: আপনার ইনডেন্টেশন ত্রুটি রয়েছে। এখানে এবং লিঙ্কযুক্ত টিউটোরিয়াল উভয়ই।
জ্যাকব Vlijm

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