İçeriğe geç →

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

Bu bölümde ufak bir uygulamaya yapmaya başlıyoruz. İlk önce arayüzü tasarlayarak işe koyulacağız. Yapmak istediğimiz program, bir indirme yöneticisi.

Line edit’e girilen URL’den bir dosya indirmeye çalışacağız. Dosyanın indirme durumu progress bar ile kullanıcıya bildirilecek. Ayrıca kullanıcı dosyayı indireceği konumu seçebilecek ve indirme tamamlandığı zaman kullanıcıya bir mesaj gösterilecek. Hata durumlarında da aynı şekilde kullanıcıya dönüt verilecek. 

Arayüz Tasarımı

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

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

        layout = QVBoxLayout()

        url = QLineEdit()
        save_location = QLineEdit()
        progress_bar = QProgressBar()
        download_button = QPushButton("İndir")

        layout.addWidget(url)
        layout.addWidget(save_location)
        layout.addWidget(progress_bar)
        layout.addWidget(download_button)

        self.setLayout(layout)

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

Ufak Dokunuşlar

Basit ama son kullanıcı için hiçbir anlamı olmayan arayüzümüz hazır. Biraz daha anlamlandırmak için birkaç ekleme daha yapmamız gerekecek.

Öncelikle dialog penceresindeki başlığı (downloader.py) düzenleyerek başlayalım. Bunun için setWindowTitle() metodunu kullanacağız.

Line editlerimizi de daha anlamlı kılmak için place holder yerleştiriyoruz. Bunun için de setPlaceholderText() metodunu kullanacağız.

Dialog penceremiz ilk açıldığı zaman otomatik olarak ilk line edit’e focus yapıyor. İlk açıldığı zaman herhangi bir focus olmamasını sağlayacağız. Bunun için setFocus() metodunu kullanmamız gerek.

Son olarak progress bar’ı da daha açıklayıcı bir hale getireceğiz. Yüzdelik bilgisini kullanıcıya sunacağız ve bunun için de setValue() metodunu kullanacağız.

Tüm bunlardan sonra aşağıdaki gibi dialog penceremiz olacak.

Linux Mint, varsayılan olarak yüzdelik değerini (0%) progress bar’a yatay olarak ortaladı. Farklı işletim sistemlerinie göre yüzdelik değerin varsayılan konumu değişebilir. Progress bar’ın ortasında yüzdelik değeri göstermek için setAlignment(Qt.AlignHCenter) metodunu kullananabiliriz.

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

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

        layout = QVBoxLayout()

        url = QLineEdit()
        save_location = QLineEdit()
        progress_bar = QProgressBar()
        download_button = QPushButton("İndir")

        url.setPlaceholderText("URL")
        save_location.setPlaceholderText("Dizin")

        progress_bar.setValue(0)
        progress_bar.setAlignment(Qt.AlignHCenter)

        layout.addWidget(url)
        layout.addWidget(save_location)
        layout.addWidget(progress_bar)
        layout.addWidget(download_button)

        self.setLayout(layout)
        self.setWindowTitle("DOWNLOADER")
        self.setFocus()

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

 

Kategori: Python

Yorumlar

Siz de düşüncelerinizi paylaşın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.