PyQt5 Tutorials

PyQt5 Menü Çubuklarında Ustalık: Kapsamlı Bir Kılavuz

Spread the love

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:

  1. Temel Menü Çubuğu Oluşturma
  2. Menü Öğelerine Simgeler Ekleme
  3. İşaretlenebilir Menü Öğeleri Uygulama
  4. Alt Menüler Oluşturma
  5. Klavye Kısayolları Ekleme
  6. 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) ...

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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir