Python pyside6 pyqt

Напишите программу с интерфейсом, которая будет по нажатию кнопки создавать много файлов внутри папки «temp».

Количество файлов нужно выбирать через spinbox на интерфейсе.

Моя попытка:

import sys
from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QSpinBox
from PySide6.QtGui import QCloseEvent

spinbox_widget = None

class ExampleWindow(QWidget):
    def __init__(self, window_name: str):
        super().__init__()
        self.window_name = window_name

        btn = QPushButton('Click', self)
        btn.clicked.connect(self.create_many_files)
        btn.move(90, 100)
        btn.setGeometry(150, 150, 150, 150)

        sbx = QSpinBox(self)
        sbx.move(90, 100)
        sbx.setGeometry(350, 150, 100, 100)
        global spinbox_widget
        spinbox_widget = sbx

        self.setGeometry(250, 250, 550, 550)
        self.setWindowTitle('Window Example')

        self.show()


    def create_many_files(self):
        global spinbox_widget
        a = int(spinbox_widget.get())
        while a > 0:
            with open(f"temp/file{a}", "w") as file:
                file.write(f"Hello, file{a}")
            a -= 1

def run():
    app = QApplication(sys.argv)

    ex = ExampleWindow("Приложение pyside")

    sys.exit(app.exec())

но у меня выходит такая ошибка

"a = int(spinbox_widget.get()) AttributeError: 'PySide6.QtWidgets.QSpinBox' object has no attribute 'get'",

я понимаю в чем ошибка, но не знаю как ее решить, не могли бы вы мне подсказать что можно написать вместо get


Ответы (1 шт):

Автор решения: S. Nick

value : int

Это свойство содержит значение счетчика

import sys
'''
from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QSpinBox
from PySide6.QtGui import QCloseEvent
'''
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *

# ??? spinbox_widget = None

class ExampleWindow(QWidget):
    def __init__(self):
        super().__init__()

        btn = QPushButton('Click', self)
        btn.clicked.connect(self.create_many_files)
# ???        btn.move(90, 100)
        btn.setGeometry(150, 150, 150, 150)

# ----> vvvv <---------------------------------------------------------------------
        self.sbx = QSpinBox(self)
# ???        self.sbx.move(90, 100)
        self.sbx.setGeometry(350, 150, 100, 100)
# ???        global spinbox_widget
# ???        spinbox_widget = self.sbx

    def create_many_files(self):
# ???        global spinbox_widget

#        a = int(spinbox_widget.get())
        a = self.sbx.value()
        
        while a > 0:
            with open(f"temp/file{a}", "w") as file:
                file.write(f"Hello, file{a}")
            a -= 1

if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = ExampleWindow()
    ex.setWindowTitle('Приложение pyside')
    ex.resize(550, 550)
    ex.show()
    sys.exit(app.exec())

введите сюда описание изображения

→ Ссылка