فهرست بستن

پایتون دیلینده Gtk ایله ایشله‌دیچی رابطلی یازیلیملار یازماق (ایکینجی بؤلوم)

پایتون یازیلیملاما دیلینده Gtk واسطه‌سییله ایشله‌دیچی رابطلی یازیلیملار یازماق اؤرگتمه‌سینین ایکینجی بؤلومونده، ایشله‌دیچی رابطده ایشله‌نن نرسه‌لرین نئجه ایسته‌دیگیمیز کیمی صفحه‌ده یئرلشدیریلمه‌لری آچیقلاناجاق دیر. قاباقکی یازی کیمی، بو یازیدا دا اؤرگتمه مثاللارلا اؤنریله‌جک دیر.

بسم الله الرحمن الرحیم

اؤنجه‌کی یازینین سون مثالینین چیخیشینا بیر گؤز سالیرساق، یاراتدیغیمیز دوگمه‌نین بوتون صفحه‌نی توتماسینی گؤره‌بیله‌ریک. مسئله دوگمه‌نی صفحه‌نین ایسته‌دیگیمیز یئرینده یئرلشدیرمک دیر. بونون اوچون Gtkـدا حاضیرلانان container ـلردن (ساخلاییچیلاردان) فایدالانمالیییق. بیرینجی تانییاجاغیمیز ساخلاییچی fixed container (ثابت ساخلاییچی) دیر. آشاغیداکی کُدلار دوگمه‌نی ثابت ساخلاییچی ایچینده یارادیر:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Apr 19 21:20:21 2019

@author: arslan
"""

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gio, Gdk


class mainWin(Gtk.Window):
    
    def __init__(self):
        Gtk.Window.__init__(self, title="منیم ایشله‌دیچی رابطلی یازیلیمیم")
        
        self.connect("delete_event", self.delete_event)
        self.connect("destroy", self.destroy)
        
        self.set_icon_from_file("./icon.png")
        self.set_border_width(10)
        self.set_default_size(500, 400)
        self.set_resizable(False)
        
        fixed = Gtk.Fixed()
        self.add(fixed)
        
        button = Gtk.Button.new_with_label("باس")
        button.connect("clicked", self.on_click)
        fixed.put(button, 100, 100)
        
    def delete_event(self, widget, event, data=None):
        return False
    
    def destroy(self, widget, data=None):
        Gtk.main_quit()
    
    def on_click(self, button):
        print("دوگمه باسیلدی!")


if __name__ == "__main__":
    win = mainWin()
    win.show_all()
    Gtk.main()

ثابت ساخلاییچی Gtk ـدان Fixed ایله یارانار. اونا بیر نرسه آرتیرماق اوچون ده یاراتدیغیمیز Fixedـدن putـو ایشلتمه‌لیییک. بو تابعین بیرینجی پارامتری اورونلاشدیریلاجاق (یئرلشدیریله‌جک) نرسه دیر. ایکینجی و اوچونجو ده نرسه‌نین قویولاجاغی مختصات دیر. کُدلارین چیخیشینی اؤنجه‌کی چیخیش ایله مقایسه‌ده آشاغیدا گؤره‌بیلرسینیز:

ثابت ساخلاییچی یازیلیملاییچییا آرتیق اختیار وئریر لکن ایشله‌دیچی رابطینین انعطافینی آزالدیر و ایشله‌دیچی رابطی انعطافلی ائتمک اوچون داها آرتیق کُدلارین یازیلماسینی دیله‌ییر. ثابت ساخلاییچیدان آرتیقراق ایشله‌نن ساخلاییچی box (قوتو) دیر. قوتو ایکی نوعدا اولابیلر، بیری یاتیق قوتولار، اوبیری ایسه دیک قوتولار. یاتیق قوتودا هانسی بیر نرسه آرتیلدیقجا، نرسه‌لر یان یانا ساغدان سولا (سولدان ساغا) دوزولرلر. دیک قوتولاردا ایسه نرسه‌لر یوخاریدان آشاغییا (آشاغیدان یوخارییا) دوزولرلر. بیر مثال ایله قوتولارین نئجه ایشلنمه‌سینی داها آرتیق آچیقلامیشیق:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Apr 19 21:20:21 2019

@author: arslan
"""

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gio, Gdk


class mainWin(Gtk.Window):
    
    def __init__(self):
        Gtk.Window.__init__(self, title="منیم ایشله‌دیچی رابطلی یازیلیمیم")
        
        self.connect("delete_event", self.delete_event)
        self.connect("destroy", self.destroy)
        
        self.set_icon_from_file("./icon.png")
        self.set_border_width(10)
        #self.set_default_size(500, 400)
        #self.set_resizable(False)
        
        vbox = Gtk.VBox()
        hbox = Gtk.HBox()
        self.add(vbox)
        
        self.text1 = Gtk.Entry()
        self.text2 = Gtk.Entry()
        
        self.button1 = Gtk.Button.new_with_label("ساخلا")
        self.button1.connect("clicked", self.button1_on_click)
        
        self.button2 = Gtk.Button.new_with_label("سیل")
        self.button2.connect("clicked", self.button2_on_click)
        
        hbox.pack_start(self.button1, expand = True, fill = True, padding=0)
        hbox.pack_start(self.button2, expand = True, fill = True, padding=0)
        
        vbox.pack_start(self.text1, expand = True, fill = True, padding=10)
        vbox.pack_start(self.text2, expand = True, fill = True, padding=10)
        vbox.pack_start(hbox, expand = True, fill = True, padding=10)
        
    def delete_event(self, widget, event, data=None):
        return False
    
    def destroy(self, widget, data=None):
        Gtk.main_quit()
    
    def button1_on_click(self, button):
        print(self.text1.get_text())
    
    def button2_on_click(self, button):
        print(self.text2.get_text())


if __name__ == "__main__":
    win = mainWin()
    win.show_all()
    Gtk.main()

کُدلارین چیخیشینی آشاغیدا گؤره‌بیلرسینیز:

کُدلاردا Gtkـدان بیر VBox و بیر HBox یاراتمیشیق. یاتیق قوتو یا hbox ـا ایکی دوگمه آرتیریلیب و دیک قوتویا ایکی یازی یئری و بیر hbox آرتیریلیب دیر. قوتولارا بیر نرسه‌نی آرتیرماق اوچون ایکی pack_start و pack_end تابعلریندن فایدالانابیله‌ریک. آدلاریندان بللی اولدوغو کیمی بونلارین بیری نرسه‌لری قوتونون باشلانیشینا اوبیری ایسه سونونا آرتیرار. بو ایکی تابعین گیریشلری نرسه‌نین آدی، expand (آچیلیش)، fill (دولدوروش)، padding (حاشیه) دیرلر. مقداری True (دوغرو) یا False (یانلیش) اولان آچیلیش، آرتیریلاجاق نرسه‌یه آرتیق فضانین وئریلیب وئریلمه‌مه‌سینی بللی ائدر. گئنه مقداری دوغرو یا یانلیش اولان دولدوروش، نرسه‌نین آرتیق فضانی توتماق اوچون آچیلماق اجازه‌سینی بللی ائدیر. سون پارامتر ده حاشیه دیر و نرسه‌لرین چئوره‌سینده نئچه پیکسللیک حاشیه اولماسینی بللی ائدیر.

1 Comments

  1. امین

    فایدالی پایلاشیم‌لارینیزران اوترو تشکر ائلیرم. یازلیم اویرتیم‌لرینیز‌دن داواملی اولاراق فایدالانیرام‌.

دیدگاه‌ها بسته شده‌اند.