• 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
QT Designer Kullanımı

 
#1

[img=750x0]http://python4hackers.com/wp-content/uploads/2016/02/656218_88c7_2.jpg[/img]Qt ile programlamada Qt Designer kullanarak daha pratik işlemler ve denemeler yaparak kodlarımızı oluşturacağız. Qt Designer’ı çalıştırdığımızda böyle bir ekranla karşılaşacağız.
[img=686x0]http://python4hackers.com/wp-content/uploads/2016/02/qt_designer_1-300x160.png[/img]
İlk açılan pencerede oluşturacağımız pencere tipini ve boyutunu belirleyerebiliriz. templates/forms’a tıklayarak en basit kod yapısı için Widget’i seçerek create’e basın. Sol tarafta bulunan Widget Box’ı kullanarak istediğiniz seçeneği sürükle bırak yaparak pencerenizi oluştubilirsiniz. Şimdilik kod yapısını anlamamız için basit halde kalması daha iyi.  File sekmesi altında bulunan Save As…’ e tıklayarak masaüstüne kaydedelim. İlk kaydedilen dosya aşağıdaki gibi xml şeklindedir. (untitled.ui)



<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>398</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
</widget>
<resources/>
<connections/>
</ui>

Bu xml dosyasını python koduna çevirmemiz gerekiyor. cmd yi açarak cd C:\Users\username\Desktop yazarak masaüstü dizinine ayarlayın. Daha sonra pyuic4 aracını kullanarak ui olan dosyayı filename.py şekline çevireceğiz.



pyuic4 -x untitled.ui -o filename.py

Masaüstünde oluşan filename.py dosyasını herhangi bir metin düzenleyiciyle açın. Çevrilen kod aşağıdaki gibi olacaktır.


# -*- coding: utf-8 -*-
 
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
 
from PyQt4 import QtCore, QtGui
 
try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s
 
try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)
 
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.resize(398, 300)
 
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
 
    def retranslateUi(self, Form):
        Form.setWindowTitle(_translate("Form", "Form", None))
 
 
if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Form = QtGui.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    sys.exit(app.exec_())

Çevirdiğimiz kod gözünüze biraz karmaşık gelmiş olabilir. Şimdi basitçe açıklayarak ilgileneceğimiz kısımları açıklayalım.
  • PyQt’nin QtGui ve QtCore sınıflarını çağırıyoruz.

  • Ui_Form  sınıfı tipinde bir nesne oluşturacağız. Bu sınıfın setupUi fonksiyonu penceremizin yapılandırılmasını sağlayacak.


    12def retranslateUi(self, Form):        Form.setWindowTitle(_translate("Form", "İlk Uygulama", None))



  • retranslateUi  fonksiyonunda butonların, text label lerin, başlığın vs. isimlerini atıyoruz.

  • 1app = QtGui.QApplication(sys.argv)
  • PyQt uygulamamızı oluşturuyoruz. Programımızın ana işleyişini gerçekleştirecek kısımdır.

    1Form = QtGui.QWidget()



  • QWidget tipinde form oluşturuyoruz.

    1ui = Ui_Form()




  • ui adında Ui_Form nesnesi oluşturuyoruz.

    1ui.setupUi(Form)





  • Daha önce oluşturduğumuz QWidget tipindeki formu ui nesnesinin setupUi fonksiyonuna parametre olarak veriyoruz.

    1Form.show()






  • Penceremizin gözükmesi için show metodunu kullandık.

    1sys.exit(app.exec_())







  • Penceremizin açık kalmasını sağlıyoruz.





Bul
Alıntı


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  QT Designer Kullanımı ve Mantığı sent 0 2,111 10-12-2017, Saat: 15:14
Son Mesaj: sent

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Bu konuyu görüntüleyen kullanıcı(lar):
1 Ziyaretçi

   
Türkçe Çeviri: Emre KRMN, Kodlayanlar MyBB, © 2002-2024 MyBB Group.  



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