Bu öğretici, PyQt5’te menü çubukları oluşturma ve özelleştirme konusunda kapsamlı bir kılavuz sunmaktadır. Temel bir uygulamadan simgeler ekleme ve işaretlenebilir menü öğeleri gibi daha gelişmiş özelliklere kadar çeşitli örnekleri ele alacağız. Sonunda, PyQt5 uygulamalarınız için sağlam ve kullanıcı dostu menüler oluşturabileceksiniz.
İçerik Tablosu:
- Temel Menü Çubuğu Oluşturma
- Menü Öğelerine Simgeler Ekleme
- İşaretlenebilir Menü Öğeleri Uygulama
- Alt Menüler Oluşturma
- Klavye Kısayolları Ekleme
- Bağlam Menüler
1. Temel Menü Çubuğu Oluşturma
Bu bölüm, PyQt5 uygulamanıza bir menü çubuğu ekleme ve onu menüler ve eylemlerle doldurma işleminin temelini göstermektedir. Bu örnek, “Yeni”, “Aç” ve “Çıkış” seçeneklerine sahip basit bir “Dosya” menüsü oluşturur.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("PyQt5 Menü Çubuğu Örneği")
menubar = self.menuBar()
file_menu = menubar.addMenu("Dosya")
new_action = QAction("Yeni", self)
open_action = QAction("Aç", self)
exit_action = QAction("Çıkış", self)
file_menu.addAction(new_action)
file_menu.addAction(open_action)
file_menu.addSeparator()
file_menu.addAction(exit_action)
exit_action.triggered.connect(QApplication.instance().quit)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
2. Menü Öğelerine Simgeler Ekleme
Simgeler eklemek, kullanıcı deneyimini geliştirir. Bu bölüm, simgeleri menü öğelerinize nasıl entegre edeceğinizi gösterir.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
from PyQt5.QtGui import QIcon
# ... (Önceki örnekten MainWindow sınıfı) ...
new_action.setIcon(QIcon("new.png")) # Kendi simge yolunuzla değiştirin
open_action.setIcon(QIcon("open.png")) # Kendi simge yolunuzla değiştirin
exit_action.setIcon(QIcon("exit.png")) # Kendi simge yolunuzla değiştirin
# ... (Önceki örnekten kalan kod) ...
“new.png”, “open.png” ve “exit.png” ifadelerini simge dosyalarınızın gerçek yollarıyla değiştirmeyi unutmayın. Simgelerin Python betiğinizle aynı dizinde olduğundan emin olun veya tam yolu belirtin.
3. İşaretlenebilir Menü Öğeleri Uygulama
İşaretlenebilir menü öğeleri, kullanıcıların seçenekleri açıp kapatmasına olanak tanır. Bu örnek, bunların oluşturulmasını ve yönetilmesini göstermektedir.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
# ... (Önceki örnekten MainWindow sınıfı) ...
toolbar_action = QAction("Araç Çubuğunu Göster", self, checkable=True)
toolbar_action.setChecked(True)
file_menu.addAction(toolbar_action)
toolbar_action.triggered.connect(self.toggle_toolbar)
def toggle_toolbar(self, checked):
print(f"Araç çubuğu görünürlüğü: {checked}") # Kendi araç çubuğu mantığınızla değiştirin
# ... (Önceki örnekten kalan kod) ...
4. Alt Menüler Oluşturma
Menü öğelerinizi alt menülerle mantıklı bir şekilde düzenleyin.
# ... (MainWindow'ın __init__ içinde) ...
edit_menu = menubar.addMenu("Düzenle")
undo_action = QAction("Geri Al", self)
redo_action = QAction("Yinele", self)
edit_menu.addAction(undo_action)
edit_menu.addAction(redo_action)
# ...
5. Klavye Kısayolları Ekleme
Klavye kısayollarıyla kullanılabilirliği artırın.
# ... (MainWindow'ın __init__ içinde) ...
exit_action.setShortcut("Ctrl+Q")
# ...
6. Bağlam Menüler
Sağ tıklama menüleri uygulayın.
# ... (MainWindow'ın __init__ içinde) ...
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.show_context_menu)
def show_context_menu(self, pos):
menu = QMenu(self)
copy_action = QAction("Kopyala", self)
paste_action = QAction("Yapıştır", self)
menu.addAction(copy_action)
menu.addAction(paste_action)
menu.exec_(self.mapToGlobal(pos))
# ...
Bu genişletilmiş öğretici, PyQt5’te Menü Çubuklarıyla çalışma konusunda daha eksiksiz bir temel sağlar. PyQt5’i `pip install PyQt5` kullanarak yüklemeyi unutmayın. Uygulamalarınız için daha karmaşık ve özellik açısından zengin menüler oluşturmak üzere bu örnekleri genişletebilirsiniz.