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
Ayrıca Linux Mint üzerinde çalışıyorum.
İ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.
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.
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.
Celery ile alakalı "best practice"leri ve faydalı araçları bir araya getiren güzel bir checklist'e denk…
Diziler en temel ve sık kullandığımız araçlardan... Kod yazarken işimizi kolaylaştıracak, daha temiz kod yazmamızı…
listve tuple bilginizi test etmek ister misiniz? realpython.com da keşfettiğim ve Türkçe'ye çevirdiğim mini teste…
Rehberlik sağlaması ve bilgi tazelemesi açısından faydalı olduğunu düşündüğüm bir Toptal blog paylaşımınıTürkçe'ye çevirdim.Devamını okuyunBilmeniz…
Angular componentlerine console üzerinden hızlıca erişmek için kullanılan bir teknik. Unutmamak için kendime not düşüyorum.Devamını…
Geçtiğimiz günlerde keşfettiğim ve oldukça da hoşuma giden repoyu paylaşmak istiyorum: lydiahallie/javascript-questions Genel olarak temel…