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.
Not: Enter tuşu ile kontrol edebiliyorsunuz.
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: