انجمنهای فارسی اوبونتو
جامعه کاربران => کافه اوبونتو => نویسنده: ɴɪᴍᴀ در 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)
-
باید از AdwHeaderBar استفاده کنی.
پیشنهاد میکنم از GNOME Builder استفاده کنی تا خودش بیسشو برات بسازه.
-
مرسی
با گنوم بیلدر زبان های دیگه مثل c++ کار میکنه ولی پروژه پایتون زمان اجرا اینجا گیر میکنه (پایین رو ببینید):
(https://forum.ubuntu-ir.org/index.php?action=dlattach;topic=156893.0;attach=55643;image)
-
چه جالب منم مثل شما میخواهم یاد بگیرم.
شما از کجا میخواهی بری یاد بگیری بگو باهم بریم.
github.com/tahapyrs/helloworld
-
خیلیم عالی! فعلا نمیدونم، منتظرم گنوم بیلدر یه چیزایی رو دانلود کنه ببینم کار میکنه یا نه! همینجا خبر میدم که چی شد (:
-
مرسی
با گنوم بیلدر زبان های دیگه مثل c++ کار میکنه ولی پروژه پایتون زمان اجرا اینجا گیر میکنه (پایین رو ببینید):
فکر کنم روی دکمه چکش که بیلد میکنه زدی.
روی دکمه اجرا کردن که بزنی، هم بیلد میکنه و بعدش هم اجراش میکنه.
منتظرم گنوم بیلدر یه چیزایی رو دانلود کنه ببینم کار میکنه یا نه! همینجا خبر میدم که چی شد (:
اونها مال فلتپکه و اجباری نیست. میتونی انتخاب کنی که روی سیستم بسازه یا فلتپک بیرون بده.
-
سلام
نسخه ای که تو ریپو آرچ بود کار نمیکرد. برای همون از فلت پک نصب کردم، sdk و چیزای دیگه رو دانلود کرد و کار کرد.
-
منم بیلدر گنوم رو با اپت نصب کردم.
-
برای ApplicationWindow از Adw استفاده کن، نه Gtk.
به نظرم Builder زیادی پیچیده کرده قضیه رو. برای ساخت رابط کاربری از Cambalache استفاده کن:
https://gitlab.gnome.org/jpu/cambalache
-
برای ApplicationWindow از Adw استفاده کن، نه Gtk.
به نظرم Builder زیادی پیچیده کرده قضیه رو. برای ساخت رابط کاربری از Cambalache استفاده کن:
https://gitlab.gnome.org/jpu/cambalache
من هیچ ایدهای ازینکه این برنامه چجوری کار میکنه ندارم!!
-
من هیچ ایدهای ازینکه این برنامه چجوری کار میکنه ندارم!!
مشکلش چیه؟
-
مشکلش چیه؟
نمیدونم چجوری باهاش کار کنم!!
-
مشکلش چیه؟
نمیدونم چجوری باهاش کار کنم!!
منم همین مشکلو دارم
-
مشکلش چیه؟
نمیدونم چجوری باهاش کار کنم!!
منطقیه
-
تا کجا باهاش پیش رفتی؟ کجاش رو مشکل داری؟
-
زیاد باهاش کار نکردم. یه Grid ساختم و تلاش کردم بهش دکمه و لیبل اضافه کنم، چندتا که اضافه کردم دیگه نمیشد چیزی اضافه کرد.
اون Grid رو انتخاب میکردم و از قسمت جستجو با فشردن کلید Alt دکمه هارو اضافه میکردم. البته با راست کلیک روی سلول موردنظر هم میشد این کارو کرد اما اونم بعد از سه چهارتا از کار میافتاد.
مستندی هم که داخل مخزنش نداره که بخوام بخونم و یاد بگیرم.
و بعدش مسئله اینه چجوری به کد پایتون متصلش کنم.
-
با گنوم بیلدر که فقط میتونی با تغییر xml اپو طراحی کنی، مثل Glade نیست که! دقیقاً کجا داشتی این کارارو میکردی؟!
-
زیاد باهاش کار نکردم. یه Grid ساختم و تلاش کردم بهش دکمه و لیبل اضافه کنم، چندتا که اضافه کردم دیگه نمیشد چیزی اضافه کرد.
چرا Grid؟ در ۹۹٪ موارد استفاده از گرید کار اشتباهیه. عناصری که میخوای رو مستقیم روی پنجره بنداز.
و بعدش مسئله اینه چجوری به کد پایتون متصلش کنم.
با GTK Builder (https://docs.gtk.org/gtk4/class.Builder.html)
مستندی هم که داخل مخزنش نداره که بخوام بخونم و یاد بگیرم.
میتونی مخزن کاربراتور رو ببینی:
https://framagit.org/tractor/carburetor
-
یک سوال، برای تبدیلش نمیشه از pyuic5 استفاده کرد؟
-
تبدیل چی و چرا تبدیل؟
-
تبدیل چی و چرا تبدیل؟
مگه نه که یه فایل .ui میده؟
خب اینو باید تبدیل کرده به .py دیگه.
-
درود من هم خیلی میخواستم یاد بگیرم اما متاسفانه آموزش فارسی از این برنامه پیدا نکردم لطفاً اگر بلدید بگید.
-
مگه نه که یه فایل .ui میده؟
بله
خب اینو باید تبدیل کرده به .py دیگه.
نه. مفهوم MVC میگه باید Model و View و Controler جدا از هم باشن.
ما ویو رو با XML داریم، مدل رو با GSettings و کنترلر رو با پایتون.