Код:
import numpy as np
from PyQt5.QtWidgets import QWidget, QMessageBox,QMainWindow, QPushButton, QFrame, QLabel, QApplication
from PyQt5.QtGui import QIcon, QPalette, QBrush, QPixmap, QColor, QPainter
from PyQt5 import QtCore
class ClrWindow(QMainWindow):
def __init__(self):
super().__init__()
self.init_UI()
print('All is OK')
def init_UI(self):
self.resize(1920, 1080)
self.setWindowTitle('ColoRow')
self.setWindowIcon(QIcon('images/icon.png'))
self.Background()
self.setupMenus()
self.showMaximized()
label=QLabel('Тест на дальтонизм.\nВаша задача - расположить цвета в верном порядке (плавный переход)'
'\nПри этом первый и последний оттенки находятся уже на своих местах.', self)
label.resize(500, 50)
label.move(900,50)
label.show()
def setupMenus(self):
fileMenu = self.menuBar().addMenu("&Файл")
openList = fileMenu.addAction("&Рейтинг игроков...")
openList.setShortcut("Ctrl+O")
openAction = fileMenu.addAction("&Справка...")
openAction.setShortcut("Ctrl+O")
gameMenu = self.menuBar().addMenu("&ColoRow")
restartAction = gameMenu.addAction("&Смешать цвета")
# openAction.triggered.connect(self.openImage)
# exitAction.triggered.connect(QApplication.instance().quit)
# restartAction.triggered.connect(self.setupPuzzle)
def Background(self):
color = self.palette()
color.setBrush(QPalette.Normal, QPalette.Background, QColor('#1f2834'))
self.setPalette(color)
def buttonClicked(self):
print('ddddddd')
def paintEvent(self, е):
colors={'color1': [[172, 118, 114],[171, 117, 109],[170, 116, 105],[170, 115, 101],[167, 113, 97],[165, 114, 96],[164, 114, 92],
[164, 114, 88],[163, 115, 86],[162, 117, 84],[163, 119, 82],[163, 121, 81],[164, 123, 78],[162, 123, 73],[161, 125, 72],
[162, 129, 73],[159, 132, 74],[154, 131, 71],[156, 138, 76],[154, 138, 76],[149, 137, 76],[143, 140, 74]],
'color2': [[143, 140, 74], [142, 143, 87], [139, 144, 88],[136, 145, 92], [133, 147, 96],[128, 146, 98], [126, 149, 102],
[126, 149, 104], [120, 150, 106],[117, 150, 108], [113, 152, 109],[106, 152, 113], [105, 153, 115],[105, 154, 119],
[96, 152, 119],[90, 148, 122], [91, 150, 126],[88, 150, 129], [89, 151, 132],[85, 150, 133], [84, 153, 136],
[84, 151, 137]],
'color3' : [[84, 151, 137],[82, 150, 140],[80, 151, 143],[73, 152, 146],[69, 153, 149],[75, 153, 151],[75, 152, 152],
[80, 153, 157],[85, 151, 160],[84, 150, 162],[89, 150, 163],[95, 149, 165],[102, 149, 164],[103, 146, 165],
[108, 146, 169],[107, 141, 166],[114, 144, 170],[114, 141, 169],[118, 141, 170],[120, 138, 168],[121, 133, 162],
[128, 136, 165]],
'color4': [[128, 136, 165],[132, 137, 166],[136, 136, 166],[138, 136, 164],[143, 136, 164],[146, 135, 163],[147, 134, 160],
[152, 133, 159],[152, 132, 156],[155, 129, 152],[160, 130, 152],[157, 124, 145],[163, 126, 146],[167, 126, 144],
[167, 123, 140],[168, 121, 136],[170, 119, 132],[172, 121, 130],[172, 117, 126],[171, 117, 122],[169, 115, 117],
[173, 119, 118]]}
step_y = 140
step_x=67
y=300
x=220
painter = QPainter()
painter.begin(self)
col = QColor('#18212d')
painter.setPen(col)
painter.setBrush(QColor('#303741'))
tints=colors.copy()
for i in range(1, 5):
tints.setdefault('color' + str(i))[1:21] = sorted(colors.setdefault('color' + str(i))[1:21],key=lambda A: np.random.random())
for n in range(22):
painter.setBrush(QColor((tints.setdefault('color' + str(i))[n])[0], (tints.setdefault('color' + str(i))[n])[1],
(tints.setdefault('color' + str(i))[n])[2]))
painter.drawRect(x, y, 65, 105)
x += step_x
y += step_y
x = 220
# painter.drawRect(100, 10, 65, 105)
# for n in range(22):
# painter.setBrush(QColor((colors.setdefault('color'+str(i))[n])[0], (colors.setdefault('color'+str(i))[n])[1],
# (colors.setdefault('color'+str(i))[n])[2]))
# painter.drawRect(x, y, 65, 105)
# x+=step_x
# y+=step_y
# x = 220
painter.end()
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_Escape:
self.close()
def show_result(self):
button_result = QPushButton('Показать результат', self)
button_result.setFixedSize(250, 50)
#button_result.move(800, 890)
button_result.move(50, 50)
# d={'color1':[[1,2,3],[4,5,6]], 'color2':[[7,8,9],[10,11,12]], 'color3':[ [13,14,15],[16,17,18]]}
# for i in d:
# for k in range(2):
# for n in range(3):
# print( (d.setdefault(i)[k])[n] )
# print(d.setdefault('color'+'1'))
# tints=d.copy()
# tints.setdefault('color'+'1')[1:3] = sorted(d.setdefault('color'+'1')[1:3], key=lambda A: np.random.random())
# print(tints.setdefault('color'+'1'))