Напишите программу с интерфейсом, которая будет по нажатию кнопки создавать много файлов внутри папки «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 бронзовых знака
1 ответ 1
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
S. Nick
78.1k134 золотых знака42 серебряных знака62 бронзовых знака
-
cспасибо огромноеYoung programmer– Young programmer2022年09月28日 18:34:31 +00:00Commented 28 сент. 2022 в 18:34
-
@Young programmer пожалуйста, вы можете не стесняться и отмечать мои ответы и полезными,, если они действительно полезны для вас.S. Nick– S. Nick2022年09月28日 18:37:42 +00:00Commented 28 сент. 2022 в 18:37
-
а как сделать проверку на существование папки, перед записью в неё. Стоит если её нет, создавать.Young programmer– Young programmer2022年09月28日 18:40:13 +00:00Commented 28 сент. 2022 в 18:40
-
можете с этим тоже подсказать пожалуйстаYoung programmer– Young programmer2022年09月28日 18:40:28 +00:00Commented 28 сент. 2022 в 18:40
-
@Young 1. google.com/…S. Nick– S. Nick2022年09月28日 19:27:21 +00:00Commented 28 сент. 2022 в 19:27
lang-py