from random import randint

from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtWidgets import QWidget, QListWidgetItem, QLabel

from app.ui_pc.Icon import Icon
from .pc_decrypt import DecryptControl
from .toolUI import Ui_Dialog

# 美化样式表
Stylesheet = """

/*去掉item虚线边框*/
QListWidget, QListView, QTreeWidget, QTreeView {
    outline: 0px;
    border:none;
    background-color:rgb(240,240,240)
}
/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/
QListWidget {
    min-width: 400px;
    max-width: 400px;
    min-height: 80px;
    max-height: 80px;
    color: black;
    border:none;
}
QListWidget::item{
    height:80px;
    width:80px;
}
/*被选中时的背景颜色和左边框颜色*/
QListWidget::item:selected {
    background: rgb(204, 204, 204);
    border-bottom: 4px solid rgb(9, 187, 7);
    border-left:none;
    color: black;
    font-weight: bold;
}
/*鼠标悬停颜色*/
HistoryPanel::item:hover {
    background: rgb(52, 52, 52);
}
"""


class ToolWindow(QWidget, Ui_Dialog):
    get_info_signal = pyqtSignal(str)
    decrypt_success_signal = pyqtSignal(bool)
    load_finish_signal = pyqtSignal(bool)

    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)
        self.setStyleSheet(Stylesheet)
        self.init_ui()
        self.load_finish_signal.emit(True)

    def init_ui(self):
        self.listWidget.clear()
        self.listWidget.currentRowChanged.connect(self.setCurrentIndex)
        chat_item = QListWidgetItem(Icon.Chat_Icon, '解密', self.listWidget)
        contact_item = QListWidgetItem(Icon.Contact_Icon, 'None', self.listWidget)
        myinfo_item = QListWidgetItem(Icon.MyInfo_Icon, 'None', self.listWidget)
        tool_item = QListWidgetItem(Icon.MyInfo_Icon, 'None', self.listWidget)
        decrypt_window = DecryptControl()
        decrypt_window.get_wxidSignal.connect(self.get_info_signal)
        decrypt_window.DecryptSignal.connect(self.decrypt_success_signal)
        self.stackedWidget.addWidget(decrypt_window)
        label = QLabel('我是页面', self)
        label.setAlignment(Qt.AlignCenter)
        # 设置label的背景颜色(这里随机)
        # 这里加了一个margin边距(方便区分QStackedWidget和QLabel的颜色)
        label.setStyleSheet('background: rgb(%d, %d, %d);margin: 50px;' % (
            randint(0, 255), randint(0, 255), randint(0, 255)))
        self.stackedWidget.addWidget(label)
        self.stackedWidget.addWidget(label)
        self.stackedWidget.addWidget(label)
        self.listWidget.setCurrentRow(0)
        self.stackedWidget.setCurrentIndex(0)

    def setCurrentIndex(self, row):
        print(row)
        self.stackedWidget.setCurrentIndex(row)
