国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

十八、Gtk4-Stateful action

這篇具有很好參考價(jià)值的文章主要介紹了十八、Gtk4-Stateful action。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

有些動(dòng)作action有狀態(tài)。狀態(tài)的典型值是布爾值或字符串。但是,如果你愿意,也可以使用其他類型的狀態(tài)。

具有狀態(tài)的動(dòng)作稱為有狀態(tài)的。

Stateful action without a paramete

有些菜單被稱為切換菜單。例如,全屏菜單有一個(gè)狀態(tài),它有兩個(gè)值——全屏和非全屏。每次單擊菜單時(shí),狀態(tài)的值都會(huì)改變。一個(gè)動(dòng)作對(duì)應(yīng)全屏菜單也有一個(gè)狀態(tài)。它的值為T(mén)RUE或FALSE,稱為布爾值。TRUE表示全屏,F(xiàn)ALSE表示非全屏。

下面是除信號(hào)處理程序之外實(shí)現(xiàn)全屏菜單的示例代碼。稍后將介紹信號(hào)處理程序。

GSimpleAction *act_fullscreen = g_simple_action_new_stateful ("fullscreen",
                                NULL, g_variant_new_boolean (FALSE));
g_signal_connect (act_fullscreen, "change-state", G_CALLBACK (fullscreen_changed), win);
g_action_map_add_action (G_ACTION_MAP (win), G_ACTION (act_fullscreen));
... ... ...
GMenuItem *menu_item_fullscreen = g_menu_item_new ("Full Screen", "win.fullscreen");
  • act_fullscreen是一個(gè)GSimpleAction實(shí)例。它是用g_simple_action_new_stateful創(chuàng)建的。這個(gè)函數(shù)有三個(gè)參數(shù)。第一個(gè)參數(shù)"fullscreen"是操作的名稱。第二個(gè)參數(shù)是形參類型。NULL表示操作沒(méi)有參數(shù)。第三個(gè)參數(shù)是動(dòng)作的初始狀態(tài)。它是一個(gè)GVariant值。下一小節(jié)將解釋GVariant。函數(shù)g_variant_new_boolean (FALSE)返回一個(gè)GVariant值,即布爾值FALSE。如果有兩個(gè)或更多的頂層窗口,每個(gè)窗口都有自己的act_fullscreen操作。因此,操作的數(shù)量與窗口的數(shù)量相同。
  • 連接動(dòng)作act_fullscreen和“change-state”信號(hào)處理程序fullscreen_changed。如果單擊全屏菜單,則激活相應(yīng)的動(dòng)作act_fullscreen。但沒(méi)有處理器連接到"激活"信號(hào)。然后,對(duì)于具有NULL參數(shù)類型(如act_fullscreen)的布爾聲明的操作,默認(rèn)行為是通過(guò)“change-state”信號(hào)切換它們。
  • 該操作被添加到GtkWindow win中。因此,行動(dòng)的范圍是 “win” – window。
  • menu_item_fullscreen是一個(gè)GMenuItem實(shí)例。有兩個(gè)參數(shù)。第一個(gè)參數(shù)"Full Screen"是menu_item_fullscreen的標(biāo)簽。第二個(gè)參數(shù)是一個(gè)動(dòng)作。動(dòng)作“贏”。Fullscreen “前綴是"win”,操作名稱是" Fullscreen "。前綴表示操作屬于窗口。
1 static void
2 fullscreen_changed(GSimpleAction *action, GVariant *value, GtkWindow *win) {
3   if (g_variant_get_boolean (value))
4     gtk_window_maximize (win);
5   else
6     gtk_window_unmaximize (win);
7   g_simple_action_set_state (action, value);
8 }
  • fullscreen_changed處理程序有三個(gè)參數(shù)。第一個(gè)參數(shù)是發(fā)出“change-state”信號(hào)的動(dòng)作。第二個(gè)參數(shù)是操作的新?tīng)顟B(tài)的值。第三個(gè)參數(shù)是一個(gè)用戶數(shù)據(jù),在g_signal_connect中設(shè)置。
  • 如果值是布爾類型且為T(mén)RUE,則最大化窗口;否則unmaximizes。
  • 用value設(shè)置操作的狀態(tài)。注意:第二個(gè)參數(shù)是切換后的狀態(tài)值,但在此階段,操作的狀態(tài)具有原始值。因此,您需要通過(guò)g_simple_action_set_state用新值設(shè)置狀態(tài)。

你可以使用“activate”信號(hào)代替“change-state”信號(hào),或者同時(shí)使用兩種信號(hào)。但上面的方法是最簡(jiǎn)單也是最好的。

GVariant

GVarient可以包含布爾值、字符串或其他類型的值。例如,下面的程序?qū)RUE賦值給類型為GVariant的值。

GVariant *value = g_variant_new_boolean (TRUE);

另一個(gè)例子是:

GVariant *value2 = g_variant_new_string ("Hello");

value2是一個(gè)GVariant,它的值是字符串類型"Hello"。GVariant可以包含其他類型,如int16、int32、int64、double等。

如果你想獲得原始值,可以使用g_variant_get系列函數(shù)。例如,可以使用g_variant_get_boolean獲取布爾值。

gboolean bool = g_variant_get_boolean (value);

因?yàn)関alue被創(chuàng)建為布爾類型GVariant和TRUE value,所以bool等于TRUE。同樣,你可以從value2中得到一個(gè)字符串

const char *str = g_variant_get_string (value2, NULL);

第二個(gè)形參是一個(gè)指向gsize類型變量的指針(gsize定義為unsigned long)。如果它不是NULL,那么字符串的長(zhǎng)度將由函數(shù)設(shè)置。如果是NULL,什么都不會(huì)發(fā)生。返回的字符串str不能更改。

Stateful action with a parameter

另一個(gè)有狀態(tài)操作的例子是與顏色選擇菜單相對(duì)應(yīng)的操作。例如,有三個(gè)菜單,每個(gè)菜單分別有紅色、綠色和藍(lán)色。它們確定GtkLabel部件的背景顏色。一個(gè)操作連接到三個(gè)菜單。這個(gè)動(dòng)作有一個(gè)值為"red"、"green"或"blue"的狀態(tài)。值是字符串。這些顏色作為參數(shù)提供給信號(hào)處理程序。

... ... ...
GSimpleAction *act_color = g_simple_action_new_stateful ("color",
                   g_variant_type_new("s"), g_variant_new_string ("red"));
GMenuItem *menu_item_red = g_menu_item_new ("Red", "app.color::red");
GMenuItem *menu_item_green = g_menu_item_new ("Green", "app.color::green");
GMenuItem *menu_item_blue = g_menu_item_new ("Blue", "app.color::blue");
g_signal_connect (act_color, "activate", G_CALLBACK (color_activated), NULL);
... ... ...
  • act_color是一個(gè)GSimpleAction實(shí)例。它是用g_simple_action_new_stateful創(chuàng)建的。這個(gè)函數(shù)有三個(gè)參數(shù)。第一個(gè)參數(shù)"color"是操作的名稱。第二個(gè)參數(shù)是一個(gè)參數(shù)類型,它是GVariantType。g_variant_type_new(“s”)創(chuàng)建字符串類型GVariantType (G_VARIANT_TYPE_STRING)。第三個(gè)參數(shù)是動(dòng)作的初始狀態(tài)。它是一個(gè)GVariant。GVariantType將在下一小節(jié)中解釋。函數(shù)g_variant_new_string (“red”)返回一個(gè)GVariant值,其字符串值為"red"。
  • menu_item_red是一個(gè)GMenuItem實(shí)例。有兩個(gè)參數(shù)。第一個(gè)實(shí)參"Red"是menu_item_red的標(biāo)簽。第二個(gè)參數(shù)是一個(gè)詳細(xì)的操作。它的前綴是"app",動(dòng)作名稱是"color",目標(biāo)是"red"。Target作為參數(shù)發(fā)送給動(dòng)作。menu_item_green和menu_item_blue也是如此。
  • 連接動(dòng)作act_color和“activate”信號(hào)處理程序color_activated。如果單擊三個(gè)菜單中的一個(gè),則通過(guò)菜單給出的target(參數(shù))激活動(dòng)作act_color。

下面是“activate”信號(hào)處理程序。

static void
color_activated(GSimpleAction *action, GVariant *parameter) {
  char *color = g_strdup_printf ("label.lb {background-color: %s;}",
                                   g_variant_get_string (parameter, NULL));
  gtk_css_provider_load_from_data (provider, color, -1);
  g_free (color);
  g_action_change_state (G_ACTION (action), parameter);
}
  • 有三個(gè)參數(shù)。第一個(gè)參數(shù)是發(fā)出“activate”信號(hào)的動(dòng)作。第二個(gè)參數(shù)是給動(dòng)作的參數(shù)。它是由菜單指定的顏色。第三個(gè)參數(shù)被省略了,因?yàn)間_signal_connect的第四個(gè)參數(shù)是NULL。
  • color是由g_strdup_printf創(chuàng)建的CSS字符串。g_strdup_printf的參數(shù)與printf C標(biāo)準(zhǔn)函數(shù)相同。G_variant_get_string獲取參數(shù)中包含的字符串。你不能改變或釋放字符串。
  • 設(shè)置css提供程序的顏色。label.lb是一個(gè)選擇器。lable是GtkLabel的節(jié)點(diǎn)名,lb是一個(gè)類。label.lb選擇具有l(wèi)b類的GtkLabel。例如,菜單有GtkLabel來(lái)顯示它們的標(biāo)簽,但它們沒(méi)有l(wèi)b類。因此,CSS不會(huì)改變它們的背景顏色。 - {background-color %s}將背景色設(shè)置為from參數(shù)中的顏色。
  • 釋放字符串color。
  • 通過(guò)g_action_change_state改變狀態(tài)。

注意:如果您沒(méi)有設(shè)置“activate”信號(hào)處理程序,信號(hào)將被轉(zhuǎn)發(fā)到“change-state”信號(hào)。因此,你可以使用“change-state”信號(hào)而不是“activate”信號(hào)。看src/menu/menu2_change_state.c.

GVariantType

GVariantType給出GVariant的類型。GVariant可以包含多種類型。而且類型通常需要在運(yùn)行時(shí)識(shí)別。

GVariantType由一個(gè)表示類型的字符串創(chuàng)建。

“b”表示布爾類型。
“s”表示字符串類型。

下面的程序是一個(gè)簡(jiǎn)單的例子。最后輸出字符串"s"。

1 #include <glib.h>
2 
3 int
4 main (int argc, char **argv) {
5   GVariantType *vtype = g_variant_type_new ("s");
6   const char *type_string = g_variant_type_peek_string (vtype);
7   g_print ("%s\n",type_string);
8 }
  • g_variant_type_new創(chuàng)建GVariantType。它使用字符串類型“s”,表示字符串。
  • g_variant_type_peek_string查看了vtype。它是創(chuàng)建vtype時(shí)傳給它的字符串"s"。
  • 將字符串打印到終端。

Example

下面的代碼包含了上面的有狀態(tài)操作。這個(gè)程序有這樣的菜單:
十八、Gtk4-Stateful action

  • 全屏菜單在最大和非最大窗口之間切換窗口大小。如果窗口是最大尺寸的,即fullscreen,則在fullscreen標(biāo)簽之前添加一個(gè)復(fù)選標(biāo)記。
  • 紅綠藍(lán)菜單決定了任何標(biāo)簽的背景顏色。菜單的左側(cè)有單選按鈕。選中菜單的單選按鈕打開(kāi)。
  • 退出菜單退出應(yīng)用程序。

代碼如下。

  1 #include <gtk/gtk.h>
  2 
  3 /* The provider below provides application wide CSS data. */
  4 GtkCssProvider *provider;
  5 
  6 static void
  7 fullscreen_changed(GSimpleAction *action, GVariant *value, GtkWindow *win) {
  8   if (g_variant_get_boolean (value))
  9     gtk_window_maximize (win);
 10   else
 11     gtk_window_unmaximize (win);
 12   g_simple_action_set_state (action, value);
 13 }
 14 
 15 static void
 16 color_activated(GSimpleAction *action, GVariant *parameter) {
 17   char *color = g_strdup_printf ("label.lb {background-color: %s;}", g_variant_get_string (parameter, NULL));
 18   /* Change the CSS data in the provider. */
 19   /* Previous data is thrown away. */
 20   gtk_css_provider_load_from_data (provider, color, -1);
 21   g_free (color);
 22   g_action_change_state (G_ACTION (action), parameter);
 23 }
 24 
 25 static void
 26 remove_provider (GApplication *app, GtkCssProvider *provider) {
 27   GdkDisplay *display = gdk_display_get_default();
 28   
 29   gtk_style_context_remove_provider_for_display (display, GTK_STYLE_PROVIDER (provider));
 30   g_object_unref (provider);
 31 }
 32 
 33 static void
 34 app_activate (GApplication *app) {
 35   GtkWindow *win = GTK_WINDOW (gtk_application_window_new (GTK_APPLICATION (app)));
 36   gtk_window_set_title (win, "menu2");
 37   gtk_window_set_default_size (win, 400, 300);
 38 
 39   GtkWidget *lb = gtk_label_new (NULL);
 40   gtk_widget_add_css_class (lb, "lb"); /* the class is used by CSS Selector */
 41   gtk_window_set_child (win, lb);
 42 
 43   GSimpleAction *act_fullscreen
 44     = g_simple_action_new_stateful ("fullscreen", NULL, g_variant_new_boolean (FALSE));
 45   g_signal_connect (act_fullscreen, "change-state", G_CALLBACK (fullscreen_changed), win);
 46   g_action_map_add_action (G_ACTION_MAP (win), G_ACTION (act_fullscreen));
 47 
 48   gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (win), TRUE);
 49 
 50   gtk_window_present (win);
 51 }
 52 
 53 static void
 54 app_startup (GApplication *app) {
 55   GSimpleAction *act_color
 56     = g_simple_action_new_stateful ("color", g_variant_type_new("s"), g_variant_new_string ("red"));
 57   GSimpleAction *act_quit
 58     = g_simple_action_new ("quit", NULL);
 59   g_signal_connect (act_color, "activate", G_CALLBACK (color_activated), NULL);
 60   g_signal_connect_swapped (act_quit, "activate", G_CALLBACK (g_application_quit), app);
 61   g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (act_color));
 62   g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (act_quit));
 63 
 64   GMenu *menubar = g_menu_new ();
 65   GMenu *menu = g_menu_new ();
 66   GMenu *section1 = g_menu_new ();
 67   GMenu *section2 = g_menu_new ();
 68   GMenu *section3 = g_menu_new ();
 69   GMenuItem *menu_item_fullscreen = g_menu_item_new ("Full Screen", "win.fullscreen");
 70   GMenuItem *menu_item_red = g_menu_item_new ("Red", "app.color::red");
 71   GMenuItem *menu_item_green = g_menu_item_new ("Green", "app.color::green");
 72   GMenuItem *menu_item_blue = g_menu_item_new ("Blue", "app.color::blue");
 73   GMenuItem *menu_item_quit = g_menu_item_new ("Quit", "app.quit");
 74 
 75   g_menu_append_item (section1, menu_item_fullscreen);
 76   g_menu_append_item (section2, menu_item_red);
 77   g_menu_append_item (section2, menu_item_green);
 78   g_menu_append_item (section2, menu_item_blue);
 79   g_menu_append_item (section3, menu_item_quit);
 80   g_object_unref (menu_item_red);
 81   g_object_unref (menu_item_green);
 82   g_object_unref (menu_item_blue);
 83   g_object_unref (menu_item_fullscreen);
 84   g_object_unref (menu_item_quit);
 85 
 86   g_menu_append_section (menu, NULL, G_MENU_MODEL (section1));
 87   g_menu_append_section (menu, "Color", G_MENU_MODEL (section2));
 88   g_menu_append_section (menu, NULL, G_MENU_MODEL (section3));
 89   g_menu_append_submenu (menubar, "Menu", G_MENU_MODEL (menu));
 90 
 91   gtk_application_set_menubar (GTK_APPLICATION (app), G_MENU_MODEL (menubar));
 92 
 93   provider = gtk_css_provider_new ();
 94   /* Initialize the css data */
 95   gtk_css_provider_load_from_data (provider, "label.lb {background-color: red;}", -1);
 96   /* Add CSS to the default GdkDisplay. */
 97   GdkDisplay *display = gdk_display_get_default ();
 98   gtk_style_context_add_provider_for_display (display, GTK_STYLE_PROVIDER (provider),
 99                                               GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
100   g_signal_connect (app, "shutdown", G_CALLBACK (remove_provider), provider);
101 }
102 
103 #define APPLICATION_ID "com.github.ToshioCP.menu2"
104 
105 int
106 main (int argc, char **argv) {
107   GtkApplication *app;
108   int stat;
109 
110   app = gtk_application_new (APPLICATION_ID, G_APPLICATION_DEFAULT_FLAGS);
111   g_signal_connect (app, "startup", G_CALLBACK (app_startup), NULL);
112   g_signal_connect (app, "activate", G_CALLBACK (app_activate), NULL);
113 
114   stat =g_application_run (G_APPLICATION (app), argc, argv);
115   g_object_unref (app);
116   return stat;
117 }
118 
  • 6-23:連接到操作的信號(hào)處理程序。
  • 25-31:當(dāng)應(yīng)用程序退出時(shí)調(diào)用處理程序remove_provider。它將提供程序從顯示中移除并釋放提供程序。
  • 33-51:激活信號(hào)處理程序。
  • 35-37:創(chuàng)建一個(gè)新窗口,并將其分配給win。它的標(biāo)題和默認(rèn)大小分別被設(shè)置為"menu2"和400x300。
  • 39-41:創(chuàng)建新的標(biāo)簽并分配給lb,名稱為lb,與CSS中使用的名稱相同。這是添加到win作為一個(gè)child。
  • 43-46:創(chuàng)建切換動(dòng)作并將其分配給act_fullscreen。它連接到信號(hào)處理程序fullscreen_changed。它被添加到窗口中,所以作用域是“win”。操作對(duì)應(yīng)于窗口。因此,如果有兩個(gè)或更多窗口,則創(chuàng)建兩個(gè)或更多操作。
  • 48:函數(shù)gtk_application_window_set_show_menubar向窗口添加一個(gè)菜單欄。
  • 50:顯示窗口。
  • 53-101:啟動(dòng)信號(hào)處理程序。
  • 55-62:創(chuàng)建兩個(gè)動(dòng)作act_color和act_quit。這些操作只存在一個(gè),因?yàn)閱?dòng)處理程序被調(diào)用了一次。它們連接到它們的處理程序并添加到應(yīng)用程序中。它們的作用域是“app”。
  • 64-89:構(gòu)建菜單。
  • 91:菜單欄添加到應(yīng)用程序中。
  • 93-100:創(chuàng)建css provider,設(shè)置數(shù)據(jù)并添加到默認(rèn)顯示。應(yīng)用程序上的“shutdown”信號(hào)連接到處理程序“remove_provider”。因此,當(dāng)應(yīng)用程序退出時(shí),提供程序?qū)娘@示中移除并釋放。

Compile

將當(dāng)前目錄更改為src/menu。

$ comp menu2
$./a.out

然后,您將看到一個(gè)窗口,內(nèi)容的背景色為紅色。您可以將大小更改為最大,然后再更改為原始大小。您可以更改背景顏色為綠色或藍(lán)色。

如果再次運(yùn)行應(yīng)用程序,同一個(gè)屏幕上會(huì)出現(xiàn)另一個(gè)窗口。兩個(gè)窗口的背景顏色相同。因?yàn)閍ct_color動(dòng)作具有“app”作用域,并且CSS應(yīng)用于由windows共享的默認(rèn)顯示。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-419507.html

到了這里,關(guān)于十八、Gtk4-Stateful action的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Pulsar's Integration with Apache Samza for Stateful Stream Processing

    隨著數(shù)據(jù)的增長(zhǎng)和復(fù)雜性,流處理技術(shù)變得越來(lái)越重要。流處理系統(tǒng)允許實(shí)時(shí)分析大規(guī)模的、高速變化的數(shù)據(jù)流。Apache Pulsar 是一個(gè)高性能的分布式消息系統(tǒng),適用于流處理和批處理。Apache Samza 是一個(gè)用于有狀態(tài)流處理的系統(tǒng),它可以與 Pulsar 集成,以實(shí)現(xiàn)高效的狀態(tài)流處理

    2024年04月14日
    瀏覽(26)
  • GTK防止gtk_container_remove移除組件后被銷毀

    gtk_container_remove移除容器內(nèi)組件 為了移除后還可以繼續(xù)使用組件,使用g_object_ref增加對(duì)象的引用計(jì)數(shù) 與之對(duì)應(yīng)的是g_object_unref,減少對(duì)象引用計(jì)數(shù),釋放對(duì)象

    2024年02月12日
    瀏覽(12)
  • 【GTK】布局容器

    【GTK】布局容器

    GTK提供了許多不同的容器組件,用戶可以通過(guò)搭配不同的容器組件來(lái)控制子組件的布局方式。 容器組件如下: GtkBox GtkGrid GtkRevealer GtkStack GtkOverlay GtkPaned GtkExpander GtkFixed GtkBox會(huì)將子組件以水平或垂直的方式布局。 在創(chuàng)建GtkBox容器傳入的GtkOrientation參數(shù)將決定GtkBox是以水平還是

    2024年02月12日
    瀏覽(20)
  • rust gtk 桌面應(yīng)用 demo

    rust gtk 桌面應(yīng)用 demo

    《精通Rust》里介紹了 GTK+框架的開(kāi)發(fā),這篇博客記錄并擴(kuò)展一下。rust 可以用于桌面應(yīng)用開(kāi)發(fā),我還挺驚訝的,大學(xué)的時(shí)候也有學(xué)習(xí)過(guò) VC++,對(duì)桌面編程一直都很感興趣,而且一直有一種妄念,總覺(jué)得自己能開(kāi)發(fā)一款很好用的桌面程序,就和總覺(jué)得自己能彩票中大獎(jiǎng)一樣。 可

    2024年02月16日
    瀏覽(16)
  • 【C/Python】用GTK實(shí)現(xiàn)多文檔窗體程序

    【C/Python】用GTK實(shí)現(xiàn)多文檔窗體程序

    在GTK+(GIMP Toolkit)中實(shí)現(xiàn)多文檔接口(MDI)程序 可以使用多種方法。GTK+本身并沒(méi)有提供專用的MDI窗口小部件,但可以使用標(biāo)簽頁(yè)(Notebook)或多個(gè)窗口(Window)來(lái)模擬MDI的功能。以下步驟將概述如何使用GtkNotebook來(lái)創(chuàng)建一個(gè)帶有標(biāo)簽頁(yè)的多文檔接口程序: 1. 創(chuàng)建一個(gè)新的G

    2024年02月20日
    瀏覽(15)
  • 開(kāi)發(fā)者,你對(duì)云計(jì)算可能有些誤解

    開(kāi)發(fā)者,你對(duì)云計(jì)算可能有些誤解

    ?????作者:大二計(jì)算機(jī)學(xué)生 ??主頁(yè):訂閱更多文章 ??關(guān)鍵: 云計(jì)算 , 概念 , 云原生 大家好,今天分享以下云計(jì)算的概念,最近很火的架構(gòu),云原生架構(gòu),離不開(kāi)云計(jì)算的加持,所以搞懂云計(jì)算的概念刻不容緩,我是小周,如果覺(jué)得文章寫(xiě)的不錯(cuò),記得三聯(lián)支持可憐

    2024年01月19日
    瀏覽(20)
  • cuda二進(jìn)制文件中到底有些什么

    cuda二進(jìn)制文件中到底有些什么

    大家好。今天我們來(lái)討論一下,相比gcc編譯器編譯的二進(jìn)制elf文件,包含有 cuda kernel 的源文件編譯出來(lái)的 elf 文件有什么不同呢? 之前研究過(guò)一點(diǎn) tvm。從 BYOC 的框架中可以得知,前端將模型 partition 成 host 和 accel(accel 表示后端,比如加速卡,NPU或者其他AI加速模塊) 兩部分,

    2024年01月22日
    瀏覽(16)
  • 【c/python】用GTK實(shí)現(xiàn)一個(gè)帶菜單的窗口

    【c/python】用GTK實(shí)現(xiàn)一個(gè)帶菜單的窗口

    在GTK中創(chuàng)建一個(gè)帶菜單的窗口,可以通過(guò)使用`Gtk.MenuBar`、`Gtk.Menu 和 Gtk.MenuItem`組件來(lái)構(gòu)建菜單。以下是一個(gè)基本的例子,展示了如何使用Python的`PyGObject`庫(kù)創(chuàng)建一個(gè)簡(jiǎn)單的帶菜單欄的GTK窗口。 在這個(gè)例子中: - 我們創(chuàng)建了一個(gè)窗口類`MenuExampleWindow`來(lái)包含菜單的邏輯。 - 使用

    2024年02月02日
    瀏覽(12)
  • Chrome有些網(wǎng)站打不開(kāi),但是火狐可以打開(kāi)

    Chrome有些網(wǎng)站打不開(kāi),但是火狐可以打開(kāi)

    開(kāi)了一個(gè)tizi,Chrome不能使用,火狐可以。之前裝過(guò)插件Ghelper白嫖科學(xué)上網(wǎng),那次之后好像瀏覽器環(huán)境就亂了。卸載了谷歌重新裝還是不行,設(shè)置局域網(wǎng)也不行,使用火絨上網(wǎng)助手?jǐn)嗑W(wǎng)恢復(fù)也不行,記錄一下問(wèn)題。 tizi打開(kāi) 應(yīng)該是谷歌瀏覽器的問(wèn)題,使用Geek徹底卸載google,嘗

    2024年02月13日
    瀏覽(28)
  • IDEA有些類爆紅,但是項(xiàng)目可以正常啟動(dòng)?

    當(dāng)在IDEA中看到一些類爆紅,但項(xiàng)目能夠正常啟動(dòng),這可能是由于以下原因?qū)е碌模?1. 缺少依賴或依賴沖突:爆紅可能是因?yàn)槿鄙倌承┮蕾嚮蛘咭蕾嚨陌姹緵_突。確保項(xiàng)目中使用的所有依賴都已正確配置,并且版本兼容。 2. IDE緩存問(wèn)題:IDEA有時(shí)可能會(huì)出現(xiàn)緩存問(wèn)題,導(dǎo)致一些

    2024年02月05日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包