İçeriğe geç →

Python İle Masaüstü Uygulama Geliştirme – 1

Python ile masaüstü uygulaması nasıl geliştirilirmiş öğrenmek için hazırım ve hemen başlıyorum. Benimle beraber bu eğitim serisini takip edecek olan varsa en azından bir programlama dilinde altyapınız ve az çok Python’un dil kurallarını bilmeniz gerek. Çünkü bunlara değinmeyeceğim.

Bu eğitim setinde ana kaynağım Python Desktop Application Development

Gerekli Araçlar

Ayrıca Linux Mint üzerinde çalışıyorum.

Kısa bir göz atış

İlk bilmen gereken PyQt elemanlarının Q ile başladığı. Mantığı Jquery de $ işareti ile başlamamız ile aynı. Q ile başlıyorsa PyQt kullanıyoruz demektir.

from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

class HelloWorld(QDialog):
    def __init__(self):
        QDialog.__init__(self)

        layout = QVBoxLayout()

        label = QLabel("Hello!")
        line_edit = QLineEdit()
        button = QPushButton("Buton")

        layout.addWidget(label)
        layout.addWidget(line_edit)
        layout.addWidget(button)

        self.setLayout(layout)
        button.clicked.connect(self.close)
        line_edit.textChanged.connect(label.setText)

app = QApplication(sys.argv)
dialog = HelloWorld()
dialog.show()
app.exec_()

QDialog, popup gibi ama normal bir pencere ekranının (QMainWindow) sahip olduğu tüm özellikleri yerine getirebilecek şekilde kullanılabiliniyor ve daha fazla fonksiyon sunuyor. HelloWorld sınıfını QDialog olarak kullanacağız.

Layout olarak vertical, horizontal, grid, form seçeneklerimiz var.

  • QVBoxLayout ile vertical layout’u seçmiş olduk.
  • Horizontal için QHBoxLayout seçilmeli.
  • Grid için QGridLayout kullanabiliriz. Bu durumda widget elementini oluştururken 2. ve 3. parametre olarak satır ve sütun değerini de göndermemiz gerek.
  • QFormLayout grid gibi ama sadece 2 sütunluk yapılar oluşturabiliriz.
grid = QGridLayout()

label = QLabel("Hello!")
line_edit = QLineEdit()
button = QPushButton("Buton")

layout.addWidget(label, 0, 0)
layout.addWidget(line_edit, 0, 1)
layout.addWidget(button, 1, 1)

Qlabel etiket, QlineEdit tek satırlık metin alanı, QPushButton buton oluşturmamıza yarıyor.

addWidget ile bu elemanları layouta ekledik ve setLayout ile de dialog penceresine şablonu atadık.

Events

button.clicked.connect(self.close)
line_edit.textChanged.connect(label.setText)

PyQt ile bir olay gerçekleştirdiğinde müdahale etmek için connect() metodunu kullanıyoruz. Bu metoda parametre olarak bir fonksiyon göndermemiz gerek. yukarıda close ve setText için parantez kullanmamış olsak bile bunlar yine fonksiyon olarak algılanacaktır.

close ve setText, PyQt ile gelen hazır metotlar. close() pencereyi sonlandırıyor. setText() ise metni yeniden düzenliyor.

Kategori: Python

Yorumlar

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back To Top