1+ import sys
2+ import random
3+ from PyQt5 .QtWidgets import (QApplication , QWidget , QVBoxLayout ,
4+ QPushButton , QLabel , QLineEdit ,
5+ QComboBox , QSpinBox )
6+
7+ class SimpleRandomGenerator (QWidget ):
8+ def __init__ (self ):
9+ super ().__init__ ()
10+ self .initUI ()
11+
12+ def initUI (self ):
13+ # Настройки окна
14+ self .setWindowTitle ('Генератор Случайных Чисел' )
15+ self .setGeometry (100 , 100 , 400 , 300 )
16+
17+ # Основной макет
18+ layout = QVBoxLayout ()
19+
20+ # Минимальное значение
21+ layout .addWidget (QLabel ('Минимальное значение:' ))
22+ self .min_input = QSpinBox ()
23+ self .min_input .setRange (- 1000 , 1000 )
24+ layout .addWidget (self .min_input )
25+
26+ # Максимальное значение
27+ layout .addWidget (QLabel ('Максимальное значение:' ))
28+ self .max_input = QSpinBox ()
29+ self .max_input .setRange (- 1000 , 1000 )
30+ self .max_input .setValue (100 )
31+ layout .addWidget (self .max_input )
32+
33+ # Тип генерации
34+ layout .addWidget (QLabel ('Тип генерации:' ))
35+ self .type_select = QComboBox ()
36+ self .type_select .addItems (['Случайное число' , 'Последовательность' ])
37+ layout .addWidget (self .type_select )
38+
39+ # Количество чисел
40+ layout .addWidget (QLabel ('Количество:' ))
41+ self .count_input = QSpinBox ()
42+ self .count_input .setRange (1 , 100 )
43+ layout .addWidget (self .count_input )
44+
45+ # Кнопка генерации
46+ generate_button = QPushButton ('Сгенерировать' )
47+ generate_button .clicked .connect (self .generate_numbers )
48+ layout .addWidget (generate_button )
49+
50+ # Результат
51+ self .result_label = QLabel ('Результат:' )
52+ layout .addWidget (self .result_label )
53+
54+ self .setLayout (layout )
55+
56+ def generate_numbers (self ):
57+ # Получаем параметры
58+ min_val = self .min_input .value ()
59+ max_val = self .max_input .value ()
60+ gen_type = self .type_select .currentText ()
61+ count = self .count_input .value ()
62+
63+ # Проверка корректности диапазона
64+ if min_val > max_val :
65+ self .result_label .setText ('Ошибка: Мин. значение больше макс.' )
66+ return
67+
68+ # Генерация
69+ try :
70+ if gen_type == 'Случайное число' :
71+ result = random .randint (min_val , max_val )
72+ self .result_label .setText (f'Случайное число: { result } ' )
73+ else :
74+ result = [random .randint (min_val , max_val ) for _ in range (count )]
75+ self .result_label .setText (f'Последовательность: { result } ' )
76+ except Exception as e :
77+ self .result_label .setText (f'Ошибка: { str (e )} ' )
78+
79+ def main ():
80+ app = QApplication (sys .argv )
81+ generator = SimpleRandomGenerator ()
82+ generator .show ()
83+ sys .exit (app .exec_ ())
84+
85+ if __name__ == '__main__' :
86+ main ()
0 commit comments