İlk arayüz çalışmamı yaptım ve hemen paylaşmak istedim. Arayüz çalışmasını QT4 ile gerçekleştirdim. Bu gerçek anlamda ilk QT4 deneyimim. QT4′ ün tasarımcıya çok büyük kolaylıklar sağlayan arabirimi ve kullanışlılığı sayesinde arayüz tasarımım 5 dakika gibi kısa bir sürede bitti. Zaten işin QT4 kısmı basit ve zevkli. İşin zor bölümü ise tasarladığınız arayüz ile yazdığınız kodların entegre edilmesi. Bütün bu işlemleri yapabilmemiz için bildiğiniz üzere sistemimizde Qt4 ve Python kurulu olmalıdır.
QT4 ile arayüz çalışmalarından görüntüler aşağıdaki gibi olacak.
Yukarıda görüldüğü gibi gerekli bileşenleri formumuza sürükleyerek ekliyoruz.
Ve düğmelere fonksiyon atayarak arayüz çalışmamız burada bitiyor. Bu arada arayüz çalışmaları ile ilgili pek fazla bir açıklama yazmadım. Bunu bir kaç sebebi var. Birincisi daha yeni öğreniyorum, yeterli bilgim yok. İkincisi en iyi öğrenme yollarından biri deneme yanılmadır. PyQt ile ilgili buradaki örneklere bakabilirsiniz. Anlatımı çok güzel.
Arayüzü oluşturduktan sonra sıkıntılı olan (benim için) Python kodları ile entegre etme işlemini yaptım. Kodların son hali aşağıdaki gibi oldu.
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
from datetime import date
import sys
class ogren:
def __init__(self, ui):
self.ui = ui
def bilgi(self):
global bugun
global dg
global yas
bugun = date.today()
ui.label_6.setText(u”Bugün :”)
ui.label_7.setText(str(bugun))
ui.label_5.setText(u”Alanları doldurup Öğren tuşuna tıklayın.”)
yol = int(ui.lineEdit.text())
ay = int(ui.lineEdit_2.text())
gun = int(ui.lineEdit_3.text())
dg = date(yol, ay, gun)
yas = bugun – dg
ui.lineEdit.clear()
ui.lineEdit_2.clear()
ui.lineEdit_3.clear()
ui.label_4.setText(str(yas))
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(“MainWindow”)
MainWindow.resize(438, 387)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(“centralwidget”)
self.lineEdit = QtGui.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(70, 80, 113, 29))
self.lineEdit.setObjectName(“lineEdit”)
self.lineEdit_2 = QtGui.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(70, 110, 113, 29))
self.lineEdit_2.setObjectName(“lineEdit_2”)
self.lineEdit_3 = QtGui.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(70, 140, 113, 29))
self.lineEdit_3.setObjectName(“lineEdit_3”)
self.pushButton = QtGui.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(20, 240, 131, 28))
self.pushButton.setObjectName(“pushButton”)
self.pushButton_2 = QtGui.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(150, 240, 106, 28))
self.pushButton_2.setObjectName(“pushButton_2”)
self.label = QtGui.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(30, 80, 62, 19))
self.label.setObjectName(“label”)
self.label_2 = QtGui.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(30, 110, 62, 19))
self.label_2.setObjectName(“label_2”)
self.label_3 = QtGui.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(30, 140, 62, 19))
self.label_3.setObjectName(“label_3”)
self.label_4 = QtGui.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(30, 210, 231, 19))
self.label_4.setObjectName(“label_4”)
self.label_5 = QtGui.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(10, 20, 421, 20))
self.label_5.setObjectName(“label_5”)
self.label_6 = QtGui.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(260, 50, 62, 19))
self.label_6.setObjectName(“label_6”)
self.label_7 = QtGui.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(320, 50, 111, 19))
self.label_7.setObjectName(“label_7”)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 438, 27))
self.menubar.setObjectName(“menubar”)
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(“statusbar”)
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.ogren = ogren(self)
QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL(“clicked()”), MainWindow.close)
QtCore.QObject.connect(self.pushButton,QtCore.SIGNAL(“clicked()”),self.ogren.bilgi)
QtCore.QObject.connect(self.lineEdit_3, QtCore.SIGNAL(“returnPressed()”), self.pushButton.animateClick)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate(“MainWindow”, “Kaç Gün Yaşadın”, None, QtGui.QApplication.UnicodeUTF8))
self.pushButton.setText(QtGui.QApplication.translate(“MainWindow”, “Öğ&ren”, None, QtGui.QApplication.UnicodeUTF8))
self.pushButton_2.setText(QtGui.QApplication.translate(“MainWindow”, “&Kapat”, None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate(“MainWindow”, “Yıl”, None, QtGui.QApplication.UnicodeUTF8))
self.label_2.setText(QtGui.QApplication.translate(“MainWindow”, “Ay”, None, QtGui.QApplication.UnicodeUTF8))
self.label_3.setText(QtGui.QApplication.translate(“MainWindow”, “Gün”, None, QtGui.QApplication.UnicodeUTF8))
self.label_4.setText(QtGui.QApplication.translate(“MainWindow”, “…”, None, QtGui.QApplication.UnicodeUTF8))
self.label_5.setText(QtGui.QApplication.translate(“MainWindow”, “Alanları doldurup Öğren tuşuna tıklayın.”, None, QtGui.QApplication.UnicodeUTF8))
self.label_6.setText(QtGui.QApplication.translate(“MainWindow”, “Bugün :”, None, QtGui.QApplication.UnicodeUTF8))
self.label_7.setText(QtGui.QApplication.translate(“MainWindow”, ” “, None, QtGui.QApplication.UnicodeUTF8))
app = QtGui.QApplication(sys.argv)
window = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(window)
window.show()
sys.exit(app.exec_())
Ve son olarak dosyayı python ogren.py komutu ile konsoldan çalıştırdığımda aldığım ekran görüntüleri aşağıda.
Mutlu son. Tabiiki program çok ilkel, ne de olsa yeni başladım. Vakit buldukça arayüz denemelerine devam edeceğim ve paylaşacağım.