• 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
PyQt Class Kullanımı

 
#1

Grafiksel kullanıcı arayüzüne sahip programlar genellikle bir çok pencere ve işlev içermektedir. Dolayısıyla bütün bu pencere ve işlevleri tek bir dosyada tutmak oldukça kafa karıştırıcı bir hale gelmeye başlar. Bu tür bir karmaşıklığı önlemek ve programımızı daha modüler bir hale getirmek için classları kullanırız.

Şimdi bir önceki konuda yazdığımız programı class kullanarak tekrar yazalım:

# !/usr/bin/env python
# -*- coding: cp1254 -*-
 
from PyQt4.QtGui import *
from PyQt4.QtCore import *

class sinifProgrami(QDialog):
   def __init__(self, parent=None):
       super(sinifProgrami, self).__init__(parent)

       self.metin = QLabel('<center><font color="green" size="6">PythonDersleri.com</font></center>')
     
       self.butonKirmizi = QPushButton('Kırmızı')
       self.connect(self.butonKirmizi, SIGNAL('pressed()'), self.kirmiziMetin)
         
       self.butonMavi = QPushButton('Mavi')
       self.connect(self.butonMavi, SIGNAL('pressed()'), self.maviMetin)

       izgara = QGridLayout()
       izgara.addWidget(self.metin, 0, 1, 2, 1)
       izgara.addWidget(self.butonKirmizi, 0, 0)
       izgara.addWidget(self.butonMavi, 1, 0)

       self.setLayout(izgara)
       self.setWindowTitle('PyQt Grid Layout')
       self.setFixedSize(450, 150)

   def kirmiziMetin(self):
       self.metin.setText('<center><font color="red" size="6">Merhaba Dünyalı Smile</font></center>')
     
   def maviMetin(self):
       self.metin.setText('<center><font color="blue" size="6">Uygar Köroğlu</font></center>')

uygulama = QApplication([])
pencere = sinifProgrami()
pencere.show()
 
uygulama.exec_()


Bu kodu çalıştırdığımızda da çıktı değişmeyecektir:


[Resim: grip_layout_class.jpg]

PyQt classları QWidget nesnesi olabileceği gibi QDialog nesnesi de olabilir. Hangisinin nesnesi ise ona ait tüm özellikleri de taşıyacaktır.
Yazmış olduğumuz kodları satır satır açıklamaktan ziyade bu koda baktığımızda farklı olarak gözümüze ilk şu satır çarpmaktadır:

super(sinifProgrami, self).__init__(parent)
Bu satırda parenttan bahsettik yani ebeveyn. Program alt pencerelerden oluşmaya başladığında, hangi pencerenin hangi pencereye ait alt pencere olduğunu ayırt etmek için bu yapı kullanılır. Biz bu pencerenin bir alt pencere olmadığını, bizim penceremizin bir ana pencere olduğunu parent=None ifadesiyle belirttik.
Bir class'ın başlamasını sağlamak için super() metodu kullanılmakta. super() metodu parametre olarak; ilk parametrede class'ın adını, ikinci parametrede ise self olarak kendisini alır. __init__() metoduna ise hangi pencerenin alt penceresi olduğunu parametre olarak yazarız.



Bul
Alıntı


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  PyQt Grid Layout (Izgara Pencere Düzeni) efsane 0 2,150 02-06-2017, Saat: 12:59
Son Mesaj: efsane
  PyQt sinyaller ve Slotlar efsane 0 2,242 02-06-2017, Saat: 12:47
Son Mesaj: efsane
  PyQt Pencere Düzenleri efsane 0 2,083 02-06-2017, Saat: 12:41
Son Mesaj: efsane
  Merhaba PyQt efsane 0 2,061 02-06-2017, Saat: 12:25
Son Mesaj: efsane
  PyQt giriş efsane 0 2,061 02-06-2017, Saat: 11:48
Son Mesaj: efsane

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Bu konuyu görüntüleyen kullanıcı(lar):
1 Ziyaretçi

   
Türkçe Çeviri: Emre KRMN, Kodlayanlar MyBB, © 2002-2022 MyBB Group.  



Merih Forum® bilgi paylaşım platformu. 2015-∞ Tüm hakları saklıdır.