Python 0-30 Arası Sayıların Karelerini Öğreten Program

K.Makise

Kilopat
Katılım
28 Kasım 2020
Mesajlar
4.799
Makaleler
4
Çözümler
81
Daha fazla  
Cinsiyet
Erkek
Hobi amaçlı PyQt6 ile küçük bir arayüz tasarlayıp 0-30 arası sayıların karelerini soran ve doğru ya da yanlış cevap sayısını gösteren bir program yazdım.
Not: Enter tuşu ile kontrol edebiliyorsunuz.

Ekran Görüntüsü - 2024-10-13 23-38-28.png


Python:
from PyQt6 import QtWidgets
from PyQt6.QtWidgets import QMessageBox
from PyQt6.QtGui import QKeySequence,QShortcut
from kok_sokturen import Ui_MainWindow
import sys
import random


true = 0
false = 0

class Kok_sokturen_UI(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.sqrt()

        self.ui.btn_CTRL.clicked.connect(self.ctrl)
      

        self.shorcut = QShortcut(QKeySequence("Return"),self)
        self.shorcut.activated.connect(self.ctrl)
      


  

    def sqrt(self):
      
      
        self.selNum = random.randint(0,30)
      
        self.sqrtNum = self.selNum ** 2

        self.ui.lbl_Description.setText(f"{self.selNum} sayısının karesini girin.")
        self.ui.lbl_NUM.setText(f"{self.selNum}")

    def ctrl(self):
        global true
        global false
        try:

        
            if int(self.ui.line_txt.text()) == self.sqrtNum:
                true += 1
                self.ui.lbl_True.setText(f"D: {true}")
              
                self.ui.line_txt.clear()
                self.sqrt()
            else:
                false += 1
                self.ui.lbl_False.setText(f"Y: {false}")
                self.ui.line_txt.clear()
                self.sqrt()
        except ValueError:
            msg = QMessageBox()
            msg.setIcon(msg.Icon.Warning)
            msg.setText("Girilen değer sayısal olmalı!")
            msg.setWindowTitle("Hatalı Girdi")
            msg.addButton("Tamam", msg.ButtonRole.AcceptRole)
            msg.exec()
          


def start():
    ap = QtWidgets.QApplication(sys.argv)
    win = Kok_sokturen_UI()
    win.show()
    sys.exit(ap.exec())

start()

Python:
# Form implementation generated from reading ui file 'kok_sokturen.ui'
#
# Created by: PyQt6 UI code generator 6.4.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(347, 245)
        MainWindow.setMinimumSize(QtCore.QSize(0, 0))
        MainWindow.setMaximumSize(QtCore.QSize(644, 416))
        MainWindow.setWindowOpacity(1.0)
        self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.lbl_Description = QtWidgets.QLabel(parent=self.centralwidget)
        self.lbl_Description.setObjectName("lbl_Description")
        self.horizontalLayout.addWidget(self.lbl_Description)
        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.horizontalLayout.addItem(spacerItem1)
        self.verticalLayout.addLayout(self.horizontalLayout)
        spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.verticalLayout.addItem(spacerItem2)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem3)
        self.lbl_NUM = QtWidgets.QLabel(parent=self.centralwidget)
        self.lbl_NUM.setObjectName("lbl_NUM")
        self.horizontalLayout_2.addWidget(self.lbl_NUM)
        spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem4)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        spacerItem5 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.verticalLayout.addItem(spacerItem5)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.lbl_True = QtWidgets.QLabel(parent=self.centralwidget)
        self.lbl_True.setObjectName("lbl_True")
        self.horizontalLayout_3.addWidget(self.lbl_True)
        self.lbl_False = QtWidgets.QLabel(parent=self.centralwidget)
        self.lbl_False.setObjectName("lbl_False")
        self.horizontalLayout_3.addWidget(self.lbl_False)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.verticalLayout.addItem(spacerItem6)
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        spacerItem7 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.gridLayout.addItem(spacerItem7, 0, 0, 1, 1)
        self.line_txt = QtWidgets.QLineEdit(parent=self.centralwidget)
        self.line_txt.setMaxLength(3)
        self.line_txt.setObjectName("line_txt")
        self.gridLayout.addWidget(self.line_txt, 0, 1, 1, 1)
        self.btn_CTRL = QtWidgets.QPushButton(parent=self.centralwidget)
        self.btn_CTRL.setObjectName("btn_CTRL")
        self.gridLayout.addWidget(self.btn_CTRL, 0, 2, 1, 1)
        spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.gridLayout.addItem(spacerItem8, 0, 3, 1, 1)
        self.verticalLayout.addLayout(self.gridLayout)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 347, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Kök Söktüren"))
        self.lbl_Description.setText(_translate("MainWindow", "900 sayısının karesini  girin."))
        self.lbl_NUM.setText(_translate("MainWindow", "900"))
        self.lbl_True.setText(_translate("MainWindow", "D: 0"))
        self.lbl_False.setText(_translate("MainWindow", "Y: 0"))
        self.btn_CTRL.setText(_translate("MainWindow", "Kontrol Et"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec())
 
Son düzenleyen: Moderatör:

Technopat Haberler

Yeni konular

Geri
Yukarı