Arkadaşlar merhaba.
Bir buton ekleyeceğim ve butona bastığımda, butonun altında menü açılacak. Menüden item seçeceğim ve ona göre işlem yapılacak. Bunu nasıl yapabilirim?
Arkadaşlar merhaba.
Bir buton ekleyeceğim ve butona bastığımda, butonun altında menü açılacak. Menüden item seçeceğim ve ona göre işlem yapılacak. Bunu nasıl yapabilirim?
Menüden kastınız nedir tam olarak?
Bahsini ettiğiniz şey QComboBox ile yapılabilir gibi geliyor.
ComboBox’tan yeni bir ‘item’ seçtiğinizde bir fonksiyonu çağırmak için currentTextChanged
veya currentIndexChanged
ile ‘connect’ edebilirsin.
def on_combobox_changed(self, value):
print("combobox changed", value)
# do your code
Burada value, neye ‘connect’ ettiğine bağlı olarak yeni text değeri veya yeni index değeri oluyor.
ComboBox.currentTextChanged.connect(self.on_combobox_changed)
# veya
ComboBox.currentIndexChanged.connect(self.on_combobox_changed)
ComboBox yukarıdaki görsel gibi bir şey.
Yok hocam comboBox değil. Şimdi şöyle: Ben butona tıklayacağım, sonra butonun altında bir menü açılacak. Ve menüden seçtiğime göre işlem yapacak. Mesela bunun gibi:
Kapatma tuşuna basınca menü açıldı. Ben de bir buton koyacağım ve butona basınca menü açılacak.
Şöyle bir şey uygulanabilir.
from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Test")
self.setupUi()
self.show()
self.condition = False
def setupUi(self):
self.setFixedSize(200, 450)
self.b1 = QPushButton("Seçenekler", self)
self.b1.setGeometry(QRect(25, 325, 150, 100))
self.b1.clicked.connect(self.function_1)
self.b1.show()
self.group_box = QGroupBox(self)
self.group_box.setGeometry(QRect(25, 25, 150, 300))
self.group_box.setVisible(False)
self.i1 = QPushButton("1. item", self.group_box)
self.i1.setGeometry(QRect(0, 0, 150, 100))
self.i1.clicked.connect(self.function_2)
self.i2 = QPushButton("2. item", self.group_box)
self.i2.setGeometry(QRect(0, 100, 150, 100))
self.i2.clicked.connect(self.function_2)
self.i3 = QPushButton("3. item", self.group_box)
self.i3.setGeometry(QRect(0, 200, 150, 100))
self.i3.clicked.connect(self.function_2)
def function_1(self):
if self.condition == True:
self.group_box.setVisible(False)
self.condition = False
else:
self.group_box.setVisible(True)
self.condition = True
def function_2(self):
value = (self.sender()).text()
print(f"İtem seçildi >>> {value}")
self.group_box.setVisible(False)
self.condition = False
app = QApplication(sys.argv)
gui = MainWindow()
app.exec_()
setStyleSheet()
ile biraz kurcaladıktan sonra güzel bir görüntü elde edebilirsin diye düşünmekteyim.