پس از شش ماه توسعه، انتشار یک جعبه ابزار چند پلتفرمی برای ایجاد رابط کاربری گرافیکی منتشر شد - GTK 4.10.0. GTK 4 به عنوان بخشی از یک فرآیند توسعه جدید در حال توسعه است که تلاش می کند به توسعه دهندگان برنامه یک API پایدار و پشتیبانی شده برای چندین سال ارائه دهد که می تواند بدون ترس از بازنویسی برنامه ها هر شش ماه یک بار به دلیل تغییرات API در GTK بعدی استفاده شود. شاخه.
از جمله قابل توجه ترین پیشرفت ها در GTK 4.10 عبارتند از:
- ویجت GtkFileChooserWidget، که دیالوگی را اجرا می کند که برای انتخاب فایل ها در برنامه ها باز می شود، حالتی را برای ارائه محتویات دایرکتوری در قالب شبکه ای از نمادها پیاده سازی می کند. بهطور پیشفرض، نمای کلاسیک در قالب فهرستی از فایلها همچنان استفاده میشود و دکمه جداگانهای در سمت راست پنل ظاهر میشود تا به حالت آیکون بروید. نمادها:
- کلاس های جدید GtkColorDialog، GtkFontDialog، GtkFileDialog و GtkAlertDialog با اجرای دیالوگ هایی برای انتخاب رنگ ها، فونت ها و فایل ها و نمایش اخطارها اضافه شده اند. گزینههای جدید با انتقال به یک API جامعتر و متعادلتر که در حالت ناهمزمان (GIO async) عمل میکند، متمایز میشوند. در گفتگوهای جدید، در صورت امکان و در دسترس بودن، از پورتال های Freedesktop (xdg-desktop-portal) استفاده می شود که برای سازماندهی دسترسی به منابع محیط کاربر از برنامه های ایزوله استفاده می شود.
- یک CPDB جدید (Common Printing Dialog Backend) اضافه شده است که هندلرهای استانداردی را برای استفاده در دیالوگ های چاپ ارائه می دهد. نسخه پشتیبان چاپ lpr که قبلا استفاده شده بود متوقف شده است.
- کتابخانه GDK که یک لایه بین GTK و زیرسیستم گرافیکی فراهم می کند، ساختار GdkTextureDownloader را ارائه می دهد که برای بارگذاری بافت ها در کلاس GdkTexture استفاده می شود و می توان از آن برای تبدیل فرمت های مختلف استفاده کرد. بهبود مقیاس بافت با استفاده از OpenGL.
- کتابخانه GSK (GTK Scene Kit) که توانایی ارائه صحنه های گرافیکی از طریق OpenGL و Vulkan را فراهم می کند، از گره ها با ماسک و فیلتر سفارشی بافت های مقیاس پذیر پشتیبانی می کند.
- پشتیبانی از نسخه های جدید افزونه های پروتکل Wayland اجرا شده است. خروجی اعلانهای شروع هنگام استفاده از پروتکل "xdg-activation" تنظیم شده است. مشکلات مربوط به اندازه مکان نما در صفحات نمایش با تراکم پیکسلی بالا حل شد.
- کلاس GtkMountOperation برای کار در محیط های غیر X11 سازگار شده است.
- باطن برادوی، که به شما امکان می دهد خروجی کتابخانه GTK را در یک پنجره مرورگر وب ارائه دهید، پشتیبانی از پنجره های مدال را اضافه کرده است.
- کلاس GtkFileLauncher یک API ناهمزمان جدید برای جایگزینی gtk_show_uri ارائه می دهد.
- ابزار gtk-builder-tool پردازش قالب را بهبود بخشیده است.
- ویجت GtkSearchEntry پشتیبانی از متن پرکننده را اضافه کرده است که وقتی فیلد خالی است و هیچ فوکوس ورودی وجود ندارد نشان داده می شود.
- کلاس GtkUriLauncher اضافه شد، که جایگزین تابع gtk_show_uri میشود، که برای تعیین برنامه راهاندازی شده برای نمایش یک URI داده شده یا در صورت عدم وجود کنترلکننده، خطا ایجاد میکند.
- کلاس GtkStringSorter از روشهای مختلف «ترکیب» پشتیبانی میکند، که به شما امکان میدهد مطابقت و مرتبسازی را بر اساس معنای کاراکترها انجام دهید (مثلاً وقتی علامت تأکیدی وجود دارد).
- بخش بزرگی از API ها و ویجت ها منسوخ شده اند که تصمیم گرفته شد در شاخه GTK5 آینده از آنها پشتیبانی نکنند و با آنالوگ هایی که در حالت ناهمزمان کار می کنند جایگزین شدند:
- GtkDialog (باید از GtkWindow استفاده کرد).
- GtkTreeView (باید از GtkListView و GtkColumnView استفاده شود).
- GtkIconView (باید از GtkGridView استفاده کرد).
- GtkComboBox (باید از GtkDropDown استفاده شود).
- GtkAppChooser (باید از GtkDropDown استفاده شود).
- GtkMessageDialog (باید از GtkAlertDialog استفاده شود).
- GtkColorChooser (باید از GtkColorDialog و GtkColorDialogButton استفاده کرد).
- GtkFontChooser (باید از GtkFontDialog و GtkFontDialogButton استفاده کرد).
- GtkFileChooser (باید از GtkFileDialog استفاده کرد).
- GtkInfoBar
- GtkEntryCompletion
- GtkStyleContext
- GtkVolumeButton
- GtkStatusbar
- GtkAssistant
- دکمه GtkLock
- gtk_widget_show/hide
- gtk_show_uri
- gtk_render_ و gtk_snapshot_render_
- gtk_gesture_set_sequence_state
- رابط GtkAccessible به دسته عمومی منتقل شده است که به شما امکان می دهد کنترل کننده های شخص ثالث عناصر رابط را برای افراد دارای معلولیت متصل کنید. رابط GtkAccessibleRange اضافه شد.
- پلتفرم macOS از کشیدن عناصر با ماوس (DND، Drag-and-Drop) پشتیبانی می کند.
- در پلتفرم ویندوز، ادغام با تنظیمات سیستم بهبود یافته است.
- قالب خروجی اشکال زدایی یکسان شده است.
- محدودیت حافظه برای آپلود کننده تصویر JPEG به 1 گیگابایت افزایش یافته است.
منبع: opennet.ru