انجمن‌های فارسی اوبونتو

جامعه کاربران => کافه اوبونتو => نویسنده: ɴɪᴍᴀ در 20 اردیبهشت 1402، 11:51 ب‌ظ

عنوان: ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: ɴɪᴍᴀ در 20 اردیبهشت 1402، 11:51 ب‌ظ
سلام
این اولین باره که میخوام با gtk کار کنم و یه اپ بسازم ولی میخوام حتما libadwaita باشه.

تا الان این کد رو کپی پیســ ... یعنی خودم نوشتم ولی انگار libadwaita کار نمیکنه  ;D ](*,) استایل ویجت های توی اپ لیب ادوایتا هست ولی تاپ بار نه! چیکار کنم؟

import sys
import gi

gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1')

from gi.repository import Gtk, Adw

class MainWindow(Gtk.ApplicationWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.set_title('Test')
        self.set_default_size(800, 600)

        box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.set_child(box)

        button = Gtk.Button.new_with_label("Test")
        button.connect("clicked", self.on_button_clicked)
        box.append(button)

    def on_button_clicked(self, button):
        print("Button was clicked")

class MyApp(Adw.Application):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.connect('activate', self.on_activate)

    def on_activate(self, app):
        self.win = MainWindow(application=app)
        self.win.present()

app = MyApp(application_id='com.example.GtkApplication')
app.run(sys.argv)

(https://forum.ubuntu-ir.org/index.php?action=dlattach;topic=156893.0;attach=55641;image)
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: behzad1 در 21 اردیبهشت 1402، 09:38 ق‌ظ
باید از AdwHeaderBar استفاده کنی.
پیشنهاد می‌کنم از GNOME Builder استفاده کنی تا خودش بیسشو برات بسازه.
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: ɴɪᴍᴀ در 21 اردیبهشت 1402، 01:22 ب‌ظ
مرسی
با گنوم بیلدر زبان های دیگه مثل c++ کار میکنه ولی پروژه پایتون زمان اجرا اینجا گیر میکنه (پایین رو ببینید):

(https://forum.ubuntu-ir.org/index.php?action=dlattach;topic=156893.0;attach=55643;image)
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: TAHAMOKHTARY در 21 اردیبهشت 1402، 01:46 ب‌ظ
چه جالب منم مثل شما می‌خواهم یاد بگیرم.
شما از کجا میخواهی بری یاد بگیری بگو باهم بریم.
github.com/tahapyrs/helloworld
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: ɴɪᴍᴀ در 21 اردیبهشت 1402، 01:48 ب‌ظ
خیلیم عالی! فعلا نمیدونم، منتظرم گنوم بیلدر یه چیزایی رو دانلود کنه ببینم کار میکنه یا نه! همینجا خبر میدم که چی شد (:
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: behzad1 در 21 اردیبهشت 1402، 04:04 ب‌ظ
مرسی
با گنوم بیلدر زبان های دیگه مثل c++ کار میکنه ولی پروژه پایتون زمان اجرا اینجا گیر میکنه (پایین رو ببینید):
فکر کنم روی دکمه چکش که بیلد می‌کنه زدی.
روی دکمه اجرا کردن که بزنی، هم بیلد می‌کنه و بعدش هم اجراش می‌کنه.
منتظرم گنوم بیلدر یه چیزایی رو دانلود کنه ببینم کار میکنه یا نه! همینجا خبر میدم که چی شد (:
اون‌ها مال فلت‌پکه و اجباری نیست. می‌تونی انتخاب کنی که روی سیستم بسازه یا فلت‌پک بیرون بده.
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: ɴɪᴍᴀ در 21 اردیبهشت 1402، 04:24 ب‌ظ
سلام
نسخه ای که تو ریپو آرچ بود کار نمیکرد. برای همون از فلت پک نصب کردم، sdk و چیزای دیگه رو دانلود کرد و کار کرد.
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: TAHAMOKHTARY در 22 اردیبهشت 1402، 01:02 ق‌ظ
منم بیلدر گنوم رو با اپت نصب کردم.
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: دانیال بهزادی در 24 اردیبهشت 1402، 09:06 ق‌ظ
برای ApplicationWindow از Adw استفاده کن، نه Gtk.
به نظرم Builder زیادی پیچیده کرده قضیه رو. برای ساخت رابط کاربری از Cambalache استفاده کن:
https://gitlab.gnome.org/jpu/cambalache
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: EnriqueTTE در 30 اردیبهشت 1402، 10:47 ق‌ظ
برای ApplicationWindow از Adw استفاده کن، نه Gtk.
به نظرم Builder زیادی پیچیده کرده قضیه رو. برای ساخت رابط کاربری از Cambalache استفاده کن:
https://gitlab.gnome.org/jpu/cambalache
من هیچ ایده‌ای ازینکه این برنامه چجوری کار می‌کنه ندارم!!
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: behzad1 در 30 اردیبهشت 1402، 10:54 ق‌ظ
من هیچ ایده‌ای ازینکه این برنامه چجوری کار می‌کنه ندارم!!
مشکلش چیه؟
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: EnriqueTTE در 01 خرداد 1402، 09:55 ق‌ظ
مشکلش چیه؟

نمی‌دونم چجوری باهاش کار کنم!!
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: thmkhtry در 01 خرداد 1402، 09:55 ق‌ظ
مشکلش چیه؟

نمی‌دونم چجوری باهاش کار کنم!!
منم همین مشکلو دارم
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: behzad1 در 01 خرداد 1402، 10:31 ق‌ظ
مشکلش چیه؟
نمی‌دونم چجوری باهاش کار کنم!!
منطقیه
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: دانیال بهزادی در 01 خرداد 1402، 02:49 ب‌ظ
تا کجا باهاش پیش رفتی؟ کجاش رو مشکل داری؟
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: EnriqueTTE در 01 خرداد 1402، 08:08 ب‌ظ
زیاد باهاش کار نکردم. یه Grid ساختم و تلاش کردم بهش دکمه و لیبل اضافه کنم، چندتا که اضافه کردم دیگه نمیشد چیزی اضافه کرد.
اون Grid رو انتخاب می‌کردم و از قسمت جستجو با فشردن کلید Alt دکمه هارو اضافه می‌کردم. البته با راست کلیک روی سلول موردنظر هم میشد این کارو کرد اما اونم بعد از سه چهارتا از کار می‌افتاد.
مستندی هم که داخل مخزنش نداره که بخوام بخونم و یاد بگیرم.
و بعدش مسئله اینه چجوری به کد پایتون متصلش کنم.
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: behzad1 در 01 خرداد 1402، 08:22 ب‌ظ
با گنوم بیلدر که فقط می‌تونی با تغییر xml اپو طراحی کنی، مثل Glade نیست که! دقیقاً کجا داشتی این کارارو می‌کردی؟!
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: دانیال بهزادی در 02 خرداد 1402، 01:25 ق‌ظ
زیاد باهاش کار نکردم. یه Grid ساختم و تلاش کردم بهش دکمه و لیبل اضافه کنم، چندتا که اضافه کردم دیگه نمیشد چیزی اضافه کرد.
چرا Grid؟ در ۹۹٪ موارد استفاده از گرید کار اشتباهیه. عناصری که می‌خوای رو مستقیم روی پنجره بنداز.

و بعدش مسئله اینه چجوری به کد پایتون متصلش کنم.
با GTK Builder (https://docs.gtk.org/gtk4/class.Builder.html)


مستندی هم که داخل مخزنش نداره که بخوام بخونم و یاد بگیرم.
می‌تونی مخزن کاربراتور رو ببینی:
https://framagit.org/tractor/carburetor
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: thmkhtry در 02 خرداد 1402، 03:13 ب‌ظ
یک سوال، برای تبدیلش نمیشه از pyuic5 استفاده کرد؟
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: دانیال بهزادی در 02 خرداد 1402، 06:14 ب‌ظ
تبدیل چی و چرا تبدیل؟
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: thmkhtry در 02 خرداد 1402، 06:20 ب‌ظ
تبدیل چی و چرا تبدیل؟
مگه نه که یه فایل .ui میده؟
خب اینو باید تبدیل کرده به .py دیگه.
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: powershell در 02 خرداد 1402، 06:21 ب‌ظ
درود من هم خیلی میخواستم یاد بگیرم اما متاسفانه آموزش فارسی از این برنامه پیدا نکردم لطفاً اگر بلدید بگید.
عنوان: پاسخ : ساخت یه اپ gtk4 و libadwaita با پایتون
ارسال شده توسط: دانیال بهزادی در 03 خرداد 1402، 12:45 ب‌ظ
مگه نه که یه فایل .ui میده؟
بله

خب اینو باید تبدیل کرده به .py دیگه.
نه. مفهوم‌ MVC می‌گه باید Model و View و Controler جدا از هم باشن.
ما ویو رو با XML داریم، مدل رو با GSettings و کنترلر رو با پایتون.