ABD Münbiçi bırakır mı ?

ABD, Münbiçin yarısı sizde yarısı bizde kalsın dedi

SON 20 YILDA OSCAR KAZANAN KADINLAR

Son 20 yılda En İyi Kadın Oyuncu kategorisinde Oscar kazanan oyuncuların listesi...

AFRİN HAREKATI

Zeytin Dalı Harekatında teröristlerden temizlenen bölge artıyor

SILKROAD XIAN SERVER

2017 de açılan Xian server ilginç özelliklerde

  • Toplam: 0 Oy - Ortalama: 0
  • 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:


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.



Ara
Cevapla


[-]
Hızlı Cevap

İnsan Doğrulama:
Aşağıda görünen onay kutusunu işaretleyiniz. Bu işlem otomatik spam kayıtları önlemek için kullanılır.

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  PyQt Grid Layout (Izgara Pencere Düzeni) efsane 0 704 02-06-2017, Saat: 11:59
Son Yorum: efsane
  PyQt sinyaller ve Slotlar efsane 0 713 02-06-2017, Saat: 11:47
Son Yorum: efsane
  PyQt Pencere Düzenleri efsane 0 689 02-06-2017, Saat: 11:41
Son Yorum: efsane
  Merhaba PyQt efsane 0 653 02-06-2017, Saat: 11:25
Son Yorum: efsane
  PyQt giriş efsane 0 627 02-06-2017, Saat: 10:48
Son Yorum: efsane

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Konuyu Okuyanlar:
1 Ziyaretçi

   
Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2018 MyBB Group.  



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