Program kutucuklar işaretlendiğinde kapanıyor

Python’da PyQt5 kullanarak program yazdım fakat hiç bir sıkıntı vermıyor açılırken ama programın içinde işlev yaparken olmuyor ve bu hatayı veriyor
Adsız2

import sys

from PyQt5.QtWidgets import QWidget,QApplication,QRadioButton,QLabel,QPushButton,QVBoxLayout

class Pencere(QWidget):
def init(self):
super().init()
self.init_ui()

def init_ui(self):
    self.radio_yazisi=QLabel("Hangi dili daha çok seviyorsun ?")
    self.python=QRadioButton("Python")
    self.java=QRadioButton("Java ")
    self.php=QRadioButton("Php")
    self.hic_biri = QRadioButton("Hiçbiri")
    self.yazi_alani=QLabel("")

    self.buton=QPushButton("Gönder")

    v_box=QVBoxLayout()

    v_box.addWidget(self.radio_yazisi)
    v_box.addWidget(self.python)
    v_box.addWidget(self.java)
    v_box.addWidget(self.php)
    v_box.addWidget(self.hic_biri)
    v_box.addStretch()
    v_box.addWidget(self.yazi_alani)
    v_box.addWidget(self.buton)
    self.setLayout(v_box)
    self.buton.clicked.connect(lambda: self.click(self.python.isChecked(), self.java.isChecked(), self.php.isChecked(), self.hic_biri(), self.yazi_alani))

    self.setWindowTitle("Radio Button")

    self.show()

    def click(self,python,java,php,hic_biri,yazi_alani):
        if python:
            yazi_alani.setText("Python")
        if java:
            yazi_alani.setText("Java")
        if php:
            yazi_alani.setText("Php")
        if hic_biri:
            yazi_alani.setText("Hiçbiri")

app =QApplication(sys.argv)
pencere=Pencere()
sys.exit(app.exec_())

Öncelikle aldığın şey hata değil programın kapatıldığını konsola yazdırılıyor 2. konu ise hangi bölümün çalışmadığını söylermisin?

kutucukları işaretlediğimde direk kapanıyor

Aldığın hatayı anlatamam çünkü kodun karmaşık bi hal almış ama sana sıfırdan bir template verebilirim

from PyQt5.QtWidgets import * 
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import * 
from PyQt5.QtCore import * 
import sys
  
  
class Window(QMainWindow):
  
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Yazbel forum")
        self.setGeometry(100, 100, 600, 400)
        self.UiComponents()
        self.show()
    def UiComponents(self):
        self.radio_button = QRadioButton(self)
        self.radio_button.setGeometry(200, 150, 120, 40)
        self.radio_button.setText("Tıkla ve olayı gör")
        self.label = QLabel("", self)
        self.label.setGeometry(200, 200, 150, 40)
        self.radio_button.clicked.connect(self.check)
    def check(self):
        if self.radio_button.isChecked():
            self.label.setText("Evet çalışıyor")
        else:
            self.label.setText("")
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())

Orada self.buton.clicked.connect(***lambda***: self.click(self.python.isChecked(), self.java.isChecked(), self.php.isChecked(), self.hic_biri(), self.yazi_alani))
lambda diyerek neyi kastettin anlayamadım

Ayrıca pip install pyqt5 --upgrade
bu komutla modülünü güncelleştirirmisin belki bundan kaynaklanıyordur

Ordan olmadığına eminim lambda ise fonksiyon objesine dönüştürmem gerektiği için kullandım yoksa hata veriyor o yüzden kullandım

@WARESSS kodunuzu buraya göre tekrar düzenlermisiniz:

Tek sorun self.hic_biri.isChecked() yerine self.hic_biri() yazmış olmanız.

1 Beğeni

yaaa şaka gibi nasıl gözden kaçırmışım bende diyorum nerede sıkıntı teşekkürler

1 Beğeni