1

Напишите программу с интерфейсом, которая будет по нажатию кнопки создавать много файлов внутри папки «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

S. Nick
78.1k134 золотых знака42 серебряных знака62 бронзовых знака
задан 28 сент. 2022 в 18:05

1 ответ 1

0

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())

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

ответ дан 28 сент. 2022 в 18:31
6
  • cспасибо огромное Commented 28 сент. 2022 в 18:34
  • @Young programmer пожалуйста, вы можете не стесняться и отмечать мои ответы и полезными,, если они действительно полезны для вас. Commented 28 сент. 2022 в 18:37
  • а как сделать проверку на существование папки, перед записью в неё. Стоит если её нет, создавать. Commented 28 сент. 2022 в 18:40
  • можете с этим тоже подсказать пожалуйста Commented 28 сент. 2022 в 18:40
  • @Young 1. google.com/… Commented 28 сент. 2022 в 19:27

Ваш ответ

Черновик сохранён
Черновик удалён

Зарегистрируйтесь или войдите

Регистрация через Google
Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Отправить без регистрации

Необходима, но никому не показывается

Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, что прочитали политику конфиденциальности.

Начните задавать вопросы и получать на них ответы

Найдите ответ на свой вопрос, задав его.

Задать вопрос

Изучите связанные вопросы

Посмотрите похожие вопросы с этими метками.