Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Python / Zope

Cevapla
 
LinkBack Seçenekler
Eski 14/08/2008, 11:57   #1 (permalink)
Üye
 
Üyelik Tarihi: 08/2008
Mesaj: 18
Varsayılan PyQT Kapatmak yerine farklı bir işlem yapılması

PyQT ile yazılmış bir programda sağ üstteki X işaretine tıklandığında programın doğrudan kapanması yerine farklı bir işlem yapılmasını istiyorum. Bunu nasıl yapabilirim?

Şöyle bir örnek buldum ama QT Designer ile yaptığım küçük bir denemede işe yaramadığını gördüm.

Kod:
#!/usr/bin/python

# messagebox.py

import sys
from PyQt4 import QtGui


class MessageBox(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('message box')


    def closeEvent(self, event):
        reply = QtGui.QMessageBox.question(self, 'Message',
            "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)

        if reply == QtGui.QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

app = QtGui.QApplication(sys.argv)
qb = MessageBox()
qb.show()
sys.exit(app.exec_())
aamederen hatta değil   Alıntı Yaparak Yanıtla
Eski 14/08/2008, 13:12   #2 (permalink)
Yönetim Kurulu
 
Muallim-i Âli Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 01/2008
Yer: İstanbul
Mesaj: 254
Varsayılan

Verdiğin örnek çalışıyor, senin yapmak istediğin ne ?
__________________
Güzel gören güzel düşünür, güzel düşünen hayatından lezzet alır.
(Said Nursi)


Java Tutorial:http://java.sun.com/docs/books/tutor.../download.html
Muallim-i Âli hatta değil   Alıntı Yaparak Yanıtla
Eski 14/08/2008, 13:16   #3 (permalink)
Üye
 
Üyelik Tarihi: 08/2008
Mesaj: 18
Varsayılan

Sorun şu ki bunu QTDesigner ile hazırladığım basit bir programa uyarlayamadım. Bunu QTDesigner ile hazırlanmış herhangi bir programa nasıl uyarlayabileceğimi açıklarsanız sevinirim.
aamederen hatta değil   Alıntı Yaparak Yanıtla
Eski 14/08/2008, 14:41   #4 (permalink)
Yönetim Kurulu
 
Muallim-i Âli Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 01/2008
Yer: İstanbul
Mesaj: 254
Varsayılan

Qt Designer ile hazırlanan kısım ayrı bir modül olarak programa dahil edilebilir, şöyle ki :

ui_deneme.py arayüz kodlarını barındıran dosyamız olsun:

Kod:
# -*- coding: utf-8 -*-# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui

class Ui_MainWindow(object):
    
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(QtCore.QSize(QtCore.QRect(0,0,342,283).size()).expandedTo(MainWindow.minimumSizeHint()))

        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Deneme", None, QtGui.QApplication.UnicodeUTF8))
deneme.pyw dosyası da program kodlarını yazacağımız dosya olsun :

Kod:
# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui
from ui_deneme import Ui_MainWindow

class deneme(QtGui.QMainWindow, Ui_MainWindow):         
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.setupUi(self)

    def closeEvent(self, event):
        reply = QtGui.QMessageBox.question(self, u'Uyarı',
            u"Programı Kapatmak İstiyor musunuz?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)

        if reply == QtGui.QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
            
app = QtGui.QApplication([])
window = deneme()
window.show()
app.exec_()
Aslında bu tarz modüler kodlama yapmak daha derli toplu oluyor bir bakıma.

Diğer türlü bağlantı sağlayamadım closeEvent() ile..Aslında fonksiyonun adının illa closeEvent olması şunu çağrıştırıyor:

QtGui.QMainWindow.closeEvent()

İşte bu bağlantıyı sinyal-slot ile halledebilsek diğer tarzda da yapabilirdik sanırım.
__________________
Güzel gören güzel düşünür, güzel düşünen hayatından lezzet alır.
(Said Nursi)


Java Tutorial:http://java.sun.com/docs/books/tutor.../download.html
Muallim-i Âli hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
kopya koruma DotNetKid Ağ / Güvenlik 24 28/07/2008 05:56
bir toplistin anatomisi ve net hikâyem... mustafa PHP 19 03/12/2005 01:27
Zaman hayattır Sahin Hayata Dair 8 01/12/2005 03:29
İntikam Sahin Hayata Dair 22 09/05/2004 10:17
Programlamanın Tao´su imiş :)) Rapsodi Genel Programlama 13 28/05/2003 13:34


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 03:09.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net