V Bolzanu probíhá konference SFSCON (South Tyrol Free Software Conference). Jean-Baptiste Kempf, zakladatel a prezident VideoLAN a klíčový vývojář VLC media playeru, byl na ní oceněn cenou European SFS Award 2025 udělovanou Free Software Foundation Europe (FSFE) a Linux User Group Bolzano‑Bozen (LUGBZ).
Open-source minimalistický trackball Ploopy Nano byl po modelech modelech Classic a Thumb Trackball také aktualizován. Nová verze Nano 2 používá optický senzor PAW3222 a k původně beztlačítkovému designu přidává jedno tlačítko, které ve výchozí konfiguraci firmwaru QMK přepíná režim posouvání koulí. Sestavený trackball nyní vyjde na 60 kanadských dolarů (bez dopravy a DPH).
Github publikoval Octoverse 2025 (YouTube), tj. každoroční přehled o stavu open source a veřejných softwarových projektů na GitHubu. Každou sekundu se připojil více než jeden nový vývojář. Nejpoužívanějším programovacím jazykem se stal TypeScript.
Kit je nový maskot webového prohlížeče Firefox.
Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.5. Přehled novinek s náhledy v oznámení na blogu.
Německo zvažuje, že zaplatí místním telekomunikačním operátorům včetně Deutsche Telekom, aby nahradili zařízení od čínské firmy Huawei. Náklady na výměnu by mohly přesáhnout dvě miliardy eur (bezmála 49 miliard Kč). Jeden scénář počítá s tím, že vláda na tento záměr použije prostředky určené na obranu či infrastrukturu.
Po dvaceti letech skončil leader japonské SUMO (SUpport.MOzilla.org) komunity Marsf. Důvodem bylo nasazení sumobota, který nedodržuje nastavené postupy a hrubě zasahuje do překladů i archivů. Marsf zároveň zakázal použití svých příspěvků a dat k učení sumobota a AI a požádal o vyřazení svých dat ze všech učebních dat.
Úřad pro ochranu hospodářské soutěže zahajuje sektorové šetření v oblasti mobilních telekomunikačních služeb poskytovaných domácnostem v České republice. Z poznatků získaných na základě prvotní analýzy provedené ve spolupráci s Českým telekomunikačním úřadem (ČTÚ) ÚOHS zjistil, že vzájemné vztahy mezi operátory je zapotřebí detailněji prověřit kvůli možné nefunkčnosti některých aspektů konkurence na trzích, na nichž roste tržní podíl klíčových hráčů a naopak klesá význam nezávislých virtuálních operátorů.
Různé audity bezpečnostních systémů pařížského muzea Louvre odhalily závažné problémy v oblasti kybernetické bezpečnosti a tyto problémy přetrvávaly déle než deset let. Jeden z těchto auditů, který v roce 2014 provedla francouzská národní agentura pro kybernetickou bezpečnost, například ukázal, že heslo do kamerového systému muzea bylo „Louvre“. 😀
Z upstreamu GNOME Mutter byl zcela odstraněn backend X11. GNOME 50 tedy poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.
from gi.repository import Gtk
w = Gtk.Window()
w.connect('destroy', Gtk.main_quit)
e = Gtk.Expander.new('Expand Me!')
e.set_tooltip_text('This is the expander.')
w.add(e)
h = Gtk.Box()
e.add(h)
b = Gtk.Button.new_with_label('Click Me!')
b.set_tooltip_text('This is the button.')
h.add(b)
w.show_all()
Gtk.main()
Toto ti nefunguje, jak má? (Gtk+ 3.2.3)
toto je python?
ja to píšem v C. Ak je to python tak výsledok je toto:
$ python gtkexp.py
Traceback (most recent call last):
File "gtkexp.py", line 1, in
from gi.repository import Gtk
File "/usr/lib/python2.7/dist-packages/gi/__init__.py", line 23, in
from ._gi import _API, Repository
ImportError: /usr/lib/python2.7/dist-packages/gi/_gi.so: undefined symbol: g_callable_info_skip_return
#include [gtk/gtk.h]
int
main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
GtkWidget *expander = gtk_expander_new("Expand Me!");
gtk_widget_set_tooltip_text(expander, "This is the expander.");
gtk_container_add(GTK_CONTAINER(window), expander);
GtkWidget *hbox = gtk_hbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(expander), hbox);
GtkWidget *button = gtk_button_new_with_label("Click Me!");
gtk_widget_set_tooltip_text(button, "This is the button.");
gtk_container_add(GTK_CONTAINER(hbox), button);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
Zkompilovatelné s Gtk+ 2 i 3 a s obojím (2.24.8 a 3.2.2) se chová identicky - správně.
nooooo... tak to je zaujímavé, ja používam toto: http://developer.gnome.org/gtk/2.24/GtkTooltips.html a tu ked to čítam sa píše:
GtkTooltips has been deprecated in GTK+ 2.12, in favor of the new GtkTooltip API.
a ukazuje to tu: http://developer.gnome.org/gtk/2.24/GtkTooltip.html . Citujem:
Basic tooltips can be realized simply by using gtk_widget_set_tooltip_text()
No je to čo ty používaš. Takže zajtra sa na to pôjdem a asi to celé prerobím.... A myslím že tým pádom je to asi vyriešené...
GtkWidget *button2 = gtk_button_new_with_label("Or Me!");
gtk_container_add(GTK_CONTAINER(hbox), button2);
A ked na neho nabehneš myšou tak sa tam objavi tip z expanderu
inak to mam 3x python 2.5 , 2.6 a 2.7. Toto hore bolo z defaultného pythona, teda asi 2.7, verzia 2.5 dáva toto:
$ python2.5 gtkexp.py
Traceback (most recent call last):
File "gtkexp.py", line 1, in <module>
from gi.repository import Gtk
ImportError: No module named gi.repository
ešte doplnil, štruktúra widgetov nie je dvojurovnova ale je to dost rozvetvený strom, napríklad:
+ GtkWidget
+----GtkContainer
+----GtkBox
+----GtkVBox
+----GtkFileChooserWidget
a každý "parent" ma spravidla viac childov. V tomto príklade uvádzam stale len jeden child...
sice nový pointer je definovaný ako gtkwidget * , ale samotný widget sa tvorí funkciou v tomto prípade:
gtk_file_chooser_widget_new()
Tiskni
Sdílej: