![]() | |
| | #1 (permalink) |
| Üye Üyelik Tarihi: 08/2008
Mesaj: 18
|
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_())
|
| | |
| | #2 (permalink) |
| Yönetim Kurulu Üyelik Tarihi: 01/2008 Yer: İstanbul
Mesaj: 254
|
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 |
| | |
| | #4 (permalink) |
| Yönetim Kurulu Üyelik Tarihi: 01/2008 Yer: İstanbul
Mesaj: 254
|
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))
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_()
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 |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
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 |
| 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 | |