コード例 #1
0
ファイル: Login.py プロジェクト: chenglinjava68/dipper
    def __init__(self, parent=None):
        super(LoginWindow, self).__init__()
        self.setWindowFlags(Qt.FramelessWindowHint)
        self.parent = parent
        self.userService = self.parent.userService
        self.resize(600, 360)
        self.setObjectName("LoginWindow")
        self.mainLayout = VBoxLayout(self)
        self.header = Header("登录", self)
        self.header.setMinimumHeight(30)
        self.user_label = QLabel("用户名")
        self.user_label.setObjectName("UserName")

        self.user_label.setMaximumHeight(27)
        self.txt_user = InputLine(self, 220, 32, "请输入用户名")
        self.txt_user.setObjectName("txt_user")
        self.txt_user.setText("生命练习生")
        self.pwd_label = QLabel("密码")
        self.pwd_label.setObjectName("Password")
        self.pwd_label.setMaximumHeight(27)
        self.txt_pwd = InputLine(self, 220, 32, "请输入密码")
        self.txt_pwd.resize(280, 40)
        self.txt_pwd.setObjectName("txt_pwd")
        self.txt_pwd.setEchoMode(QLineEdit.Password)
        self.txt_pwd.setText("123")
        self.btn_login = QPushButton()
        self.btn_login.setObjectName("btn_login")
        self.btn_login.setText("登录")
        self.btn_login.clicked.connect(self.login)
        self.btn_register = QPushButton()
        self.btn_register.setObjectName("btn_register")
        self.btn_register.setText("注册账号")
        self.setLayouts()
        with open('qss/Login_style.qss', 'r', encoding='utf-8') as f:
            self.setStyleSheet(f.read())
コード例 #2
0
ファイル: Header.py プロジェクト: BossDing/dipper
    def setButtons(self):
        """创建所有的按钮。"""
        self.logoLabel = PicLabel(r'resource/header.png', 32, 32)
        self.descriptionLabel = QLabel(self)
        self.descriptionLabel.setText("<b>酌酒援北斗</b>")

        self.userName = QLabel(self)
        self.userName.setText("<b>" + self.parent.parent.user.user_name +
                              "</b>")

        self.userPix = PicLabel(IMAGE_BASE + self.parent.parent.user.avatar,
                                32, 32)
        self.userPix.setMinimumSize(22, 22)
        self.userPix.setObjectName("userPix")

        self.closeButton = QPushButton('×', self)
        self.closeButton.setObjectName("closeButton")
        self.closeButton.setMinimumSize(21, 17)

        self.showminButton = QPushButton('-', self)
        self.showminButton.setObjectName("minButton")
        self.showminButton.setMinimumSize(21, 17)

        self.showmaxButton = QPushButton('□')
        self.showmaxButton.setObjectName("maxButton")
        self.showmaxButton.setMaximumSize(16, 16)

        self.loginButton = QPushButton("未登录 ▼", self)
        self.loginButton.setObjectName("loginButton")

        self.prevButton = QPushButton("<")
        self.prevButton.setObjectName("prevButton")
        self.prevButton.setMaximumSize(28, 22)
        self.prevButton.setMinimumSize(28, 22)

        self.nextButton = QPushButton(">")
        self.nextButton.setObjectName("nextButton")
        self.nextButton.setMaximumSize(28, 22)
        self.nextButton.setMinimumSize(28, 22)
コード例 #3
0
ファイル: Login.py プロジェクト: chenglinjava68/dipper
    def __init__(self, title: str, parent=None):
        super(Header, self).__init__()
        self.parent = parent

        self.setStyleSheet(self.myStyle)

        self.mainLayout = HBoxLayout(self)

        self.title = QLabel(title)
        self.mainLayout.addWidget(self.title)

        self.mainLayout.addStretch(1)

        self.closeButton = QPushButton('×')
        self.closeButton.clicked.connect(self.parent.close)
        self.mainLayout.addWidget(self.closeButton)
コード例 #4
0
ファイル: Navigation.py プロジェクト: chenglinjava68/dipper
    def setLabels(self):
        """定义所有的标签。"""
        self.userLabel = QLabel(" 用户管理")
        self.userLabel.setObjectName("userManagement")
        self.userLabel.setMaximumHeight(27)

        self.blogLabel = QLabel(" 博客管理")
        self.blogLabel.setObjectName("blogManagement")
        self.blogLabel.setMaximumHeight(27)
        # self.myMusic.setMaximumHeight(54)

        self.otherLabel = QLabel(" 其他...")
        self.otherLabel.setObjectName("otherLabel")
        self.otherLabel.setMaximumHeight(27)
コード例 #5
0
class UserInfo(ScrollArea):
    def __init__(self, parent=None):
        super(UserInfo, self).__init__(self)
        self.setLabel()
        self.setLayouts()

    def setLabel(self):
        self.avatarLabel = QLabel()
        self.avatarLabel.setText("头像")
        self.avatarImage = PicLabel(width=100, height=100)
        self.avatarImage.setObjectName("avatarImage")
        self.avatarImage.doubleClick.connect(self.avatarClick)

        self.userNameLabel = QLabel()
        self.userNameLabel.setText("用户名")
        self.userNameText = InputLine(self, 300, 32)

        self.passwordLabel = QLabel()
        self.passwordLabel.setText("密码")
        self.passwordText = InputLine(self, 300, 32)

        self.nickNameLabel = QLabel()
        self.nickNameLabel.setText("昵称")
        self.nickNameText = InputLine(self, 300, 32)

        self.genderLabel = QLabel()
        self.genderLabel.setText("性别")
        self.boyRadio = QRadioButton('男')
        self.girlRadio = QRadioButton('女')

        self.emailLabel = QLabel()
        self.emailLabel.setText("邮箱")
        self.emailText = InputLine(self, 300, 32)

        self.phoneLabel = QLabel()
        self.phoneLabel.setText("手机")
        self.phoneText = InputLine(self, 300, 32)

        self.signLabel = QLabel()
        self.signLabel.setText("签名")
        self.signText = InputLine(self, 300, 32)

    def avatarClick(self):
        print('ccc')

    def setLayouts(self):
        middle = 20
        height = 20
        self.mainLayout = VBoxLayout()
        self.mainLayout.addSpacing(20)
        self.infoLayout = HBoxLayout()
        self.infoLayout.addStretch()
        self.labelLayout = VBoxLayout()
        self.labelLayout.addSpacing(42)
        self.labelLayout.addWidget(self.avatarLabel)
        self.labelLayout.addSpacing(52)
        self.labelLayout.addWidget(self.userNameLabel)
        self.labelLayout.addSpacing(height)
        self.labelLayout.addWidget(self.passwordLabel)
        self.labelLayout.addSpacing(height)
        self.labelLayout.addWidget(self.nickNameLabel)
        self.labelLayout.addSpacing(height)
        self.labelLayout.addWidget(self.genderLabel)
        self.labelLayout.addSpacing(height)
        self.labelLayout.addWidget(self.emailLabel)
        self.labelLayout.addSpacing(height)
        self.labelLayout.addWidget(self.phoneLabel)
        self.labelLayout.addSpacing(height)
        self.labelLayout.addWidget(self.signLabel)
        self.labelLayout.addSpacing(height)
        self.textLayout = VBoxLayout()
        self.imageLayout = HBoxLayout()
        self.imageLayout.addStretch()
        self.imageLayout.addWidget(self.avatarImage)
        self.imageLayout.addStretch()
        self.textLayout.addLayout(self.imageLayout)
        self.textLayout.addSpacing(height)
        self.textLayout.addWidget(self.userNameText)
        self.textLayout.addSpacing(height)
        self.textLayout.addWidget(self.passwordText)
        self.textLayout.addSpacing(height)
        self.textLayout.addWidget(self.nickNameText)
        self.textLayout.addSpacing(height)
        self.genderLayout = HBoxLayout()
        self.genderLayout.addWidget(self.boyRadio)
        self.genderLayout.addWidget(self.girlRadio)
        self.textLayout.addLayout(self.genderLayout)
        self.textLayout.addSpacing(height)
        self.textLayout.addWidget(self.emailText)
        self.textLayout.addSpacing(height)
        self.textLayout.addWidget(self.phoneText)
        self.textLayout.addSpacing(height)
        self.textLayout.addWidget(self.signText)
        self.textLayout.addSpacing(height)
        self.infoLayout.addLayout(self.labelLayout)
        self.infoLayout.addSpacing(middle)
        self.infoLayout.addLayout(self.textLayout)
        self.infoLayout.addStretch()
        self.mainLayout.addLayout(self.infoLayout)
コード例 #6
0
    def setLabel(self):
        self.avatarLabel = QLabel()
        self.avatarLabel.setText("头像")
        self.avatarImage = PicLabel(width=100, height=100)
        self.avatarImage.setObjectName("avatarImage")
        self.avatarImage.doubleClick.connect(self.avatarClick)

        self.userNameLabel = QLabel()
        self.userNameLabel.setText("用户名")
        self.userNameText = InputLine(self, 300, 32)

        self.passwordLabel = QLabel()
        self.passwordLabel.setText("密码")
        self.passwordText = InputLine(self, 300, 32)

        self.nickNameLabel = QLabel()
        self.nickNameLabel.setText("昵称")
        self.nickNameText = InputLine(self, 300, 32)

        self.genderLabel = QLabel()
        self.genderLabel.setText("性别")
        self.boyRadio = QRadioButton('男')
        self.girlRadio = QRadioButton('女')

        self.emailLabel = QLabel()
        self.emailLabel.setText("邮箱")
        self.emailText = InputLine(self, 300, 32)

        self.phoneLabel = QLabel()
        self.phoneLabel.setText("手机")
        self.phoneText = InputLine(self, 300, 32)

        self.signLabel = QLabel()
        self.signLabel.setText("签名")
        self.signText = InputLine(self, 300, 32)
コード例 #7
0
ファイル: Navigation.py プロジェクト: chenglinjava68/dipper
class Navigation(QScrollArea):
    def __init__(self, parent=None):
        """包括博客、用户申请"""
        super(Navigation, self).__init__(parent)
        self.parent = parent
        self.frame = QFrame()
        self.setMaximumWidth(200)

        self.setWidget(self.frame)
        self.setWidgetResizable(True)
        self.frame.setMinimumWidth(200)

        # 定义3个事件函数,方便扩展。
        self.navigationListFunction = self.none
        self.nativeListFunction = self.none
        self.singsFunction = self.none

        with open('QSS/navigation.qss', 'r') as f:
            style = f.read()
            self.setStyleSheet(style)
            self.frame.setStyleSheet(style)

        # 包括显示信息: 推荐 我的音乐 歌单。
        self.setLabels()
        # 包括详细的内容:发现音乐,FM,MV等。
        self.setListViews()

        self.setLayouts()
        self.bindConnect()

    # 布局。
    def setLabels(self):
        """定义所有的标签。"""
        self.userLabel = QLabel(" 用户管理")
        self.userLabel.setObjectName("userManagement")
        self.userLabel.setMaximumHeight(27)

        self.blogLabel = QLabel(" 博客管理")
        self.blogLabel.setObjectName("blogManagement")
        self.blogLabel.setMaximumHeight(27)
        # self.myMusic.setMaximumHeight(54)

        self.otherLabel = QLabel(" 其他...")
        self.otherLabel.setObjectName("otherLabel")
        self.otherLabel.setMaximumHeight(27)

    def setListViews(self):
        """定义承载功能的ListView"""
        self.userItemList = QListWidget()
        self.userItemList.setMaximumHeight(110)
        self.userItemList.setObjectName("userItemList")
        self.userItemList.addItem(QListWidgetItem("♠ 个人信息"))
        self.userItemList.addItem(QListWidgetItem("❧ 新增用户"))
        self.userItemList.addItem(QListWidgetItem("ღ 用户查找"))
        self.userItemList.setCurrentRow(0)

        self.blogItemList = QListWidget()
        self.blogItemList.setObjectName("blogItemList")
        self.blogItemList.setMaximumHeight(100)
        # self.blogItemList.addItem(QListWidgetItem(QIcon('resource/notes.png'), "☯ 博客浏览"))
        self.blogItemList.addItem(QListWidgetItem("☯ 博客浏览"))
        self.blogItemList.addItem(QListWidgetItem("☪ 我的博客"))
        self.blogItemList.addItem(QListWidgetItem("✯ 博客发表"))

    def setLayouts(self):
        """定义布局。"""
        self.mainLayout = VBoxLayout(self.frame)
        self.mainLayout.addSpacing(10)

        self.mainLayout.addWidget(self.blogLabel)
        self.mainLayout.addSpacing(10)
        self.mainLayout.addWidget(self.blogItemList)
        self.mainLayout.addSpacing(10)

        self.mainLayout.addWidget(self.userLabel)
        self.mainLayout.addSpacing(10)
        self.mainLayout.addWidget(self.userItemList)
        self.mainLayout.addSpacing(1)

        self.mainLayout.addWidget(self.otherLabel)
        self.mainLayout.addSpacing(1)

        self.mainLayout.addStretch(1)

        self.setContentsMargins(0, 0, 0, 0)

    def bindConnect(self):
        self.blogItemList.itemPressed.connect(self.blogItemListClickEvent)
        self.userItemList.itemPressed.connect(self.userItemListClickEvent)

    def userItemListClickEvent(self):
        print(self.userItemList.currentRow())
        self.blogItemList.setCurrentRow(-1)
        row = self.userItemList.currentRow()
        if 0 <= row < 3:
            self.parent.mainContents.setCurrentIndex(row)

    def blogItemListClickEvent(self):
        self.userItemList.setCurrentRow(-1)
        if self.blogItemList.currentRow() == 0:
            self.parent.mainContents.setCurrentIndex(3)
        elif self.blogItemList.currentRow() == 1:
            self.parent.mainContents.setCurrentIndex(4)
        elif self.blogItemList.currentRow() == 2:
            self.parent.mainContents.setCurrentIndex(5)

    # just a test.
    def setSingsList(self):

        pass

    # 功能。
    def none(self):
        # 没有用的空函数。
        pass
コード例 #8
0
ファイル: Header.py プロジェクト: BossDing/dipper
class Header(QFrame):
    def __init__(self, parent=None):
        """头部区域,包括图标/搜索/设置/登陆/最大/小化/关闭。"""

        super(Header, self).__init__()
        self.setObjectName('Header')

        self.parent = parent
        # 用于确定是否最大化.
        self.isMax = False

        with open('qss/header.qss', 'r', encoding='utf-8') as f:
            self.setStyleSheet(f.read())

        # 加载按钮设置。
        self.setButtons()
        # 加载小细线装饰。
        self.setLines()
        # 加载布局设置。
        self.setLayouts()
        self.bindConnect()

    # 布局。
    def setButtons(self):
        """创建所有的按钮。"""
        self.logoLabel = PicLabel(r'resource/header.png', 32, 32)
        self.descriptionLabel = QLabel(self)
        self.descriptionLabel.setText("<b>酌酒援北斗</b>")

        self.userName = QLabel(self)
        self.userName.setText("<b>" + self.parent.parent.user.user_name +
                              "</b>")

        self.userPix = PicLabel(IMAGE_BASE + self.parent.parent.user.avatar,
                                32, 32)
        self.userPix.setMinimumSize(22, 22)
        self.userPix.setObjectName("userPix")

        self.closeButton = QPushButton('×', self)
        self.closeButton.setObjectName("closeButton")
        self.closeButton.setMinimumSize(21, 17)

        self.showminButton = QPushButton('-', self)
        self.showminButton.setObjectName("minButton")
        self.showminButton.setMinimumSize(21, 17)

        self.showmaxButton = QPushButton('□')
        self.showmaxButton.setObjectName("maxButton")
        self.showmaxButton.setMaximumSize(16, 16)

        self.loginButton = QPushButton("未登录 ▼", self)
        self.loginButton.setObjectName("loginButton")

        self.prevButton = QPushButton("<")
        self.prevButton.setObjectName("prevButton")
        self.prevButton.setMaximumSize(28, 22)
        self.prevButton.setMinimumSize(28, 22)

        self.nextButton = QPushButton(">")
        self.nextButton.setObjectName("nextButton")
        self.nextButton.setMaximumSize(28, 22)
        self.nextButton.setMinimumSize(28, 22)

    def setLines(self):
        """设置装饰用小细线。"""
        self.line1 = QFrame(self)
        self.line1.setObjectName("line1")
        self.line1.setFrameShape(QFrame.VLine)
        self.line1.setFrameShadow(QFrame.Plain)
        self.line1.setMaximumSize(1, 25)

    def setLayouts(self):
        """设置布局。"""
        self.mainLayout = QHBoxLayout()
        self.mainLayout.setSpacing(0)
        self.mainLayout.addWidget(self.logoLabel)
        self.mainLayout.addWidget(self.descriptionLabel)
        self.mainLayout.addSpacing(30)
        self.mainLayout.addWidget(self.prevButton)
        self.mainLayout.addWidget(self.nextButton)
        self.mainLayout.addStretch(1)
        self.mainLayout.addWidget(self.userPix)
        self.mainLayout.addSpacing(10)
        self.mainLayout.addWidget(self.userName)
        self.mainLayout.addSpacing(18)
        self.mainLayout.addWidget(self.loginButton)
        self.mainLayout.addSpacing(7)
        self.mainLayout.addWidget(self.line1)
        self.mainLayout.addSpacing(30)
        self.mainLayout.addWidget(self.showminButton)
        self.mainLayout.addSpacing(8)
        self.mainLayout.addWidget(self.showmaxButton)
        self.mainLayout.addSpacing(8)
        self.mainLayout.addWidget(self.closeButton)
        self.setLayout(self.mainLayout)

    # 事件。
    """重写鼠标事件,实现窗口拖动。"""

    def mousePressEvent(self, event):
        if event.buttons() == Qt.LeftButton:
            self.parent.m_drag = True
            self.parent.m_DragPosition = event.globalPos() - self.parent.pos()
            event.accept()

    def mouseMoveEvent(self, event):
        try:
            if event.buttons() and Qt.LeftButton:
                self.parent.move(event.globalPos() -
                                 self.parent.m_DragPosition)
                event.accept()
        except AttributeError:
            pass

    def mouseReleaseEvent(self, event):
        if event.buttons() == Qt.LeftButton:
            self.m_drag = False

    def bindConnect(self):
        self.closeButton.clicked.connect(self.parent.close)
        self.showminButton.clicked.connect(self.parent.showMinimized)
        self.showmaxButton.clicked.connect(self.showMaxiOrRevert)

    def showMaxiOrRevert(self):
        if self.isMax:
            self.parent.showNormal()
            self.isMax = False
        else:
            self.parent.showMaximized()
            self.isMax = True
コード例 #9
0
ファイル: Login.py プロジェクト: chenglinjava68/dipper
class LoginWindow(ScrollArea):
    def __init__(self, parent=None):
        super(LoginWindow, self).__init__()
        self.setWindowFlags(Qt.FramelessWindowHint)
        self.parent = parent
        self.userService = self.parent.userService
        self.resize(600, 360)
        self.setObjectName("LoginWindow")
        self.mainLayout = VBoxLayout(self)
        self.header = Header("登录", self)
        self.header.setMinimumHeight(30)
        self.user_label = QLabel("用户名")
        self.user_label.setObjectName("UserName")

        self.user_label.setMaximumHeight(27)
        self.txt_user = InputLine(self, 220, 32, "请输入用户名")
        self.txt_user.setObjectName("txt_user")
        self.txt_user.setText("生命练习生")
        self.pwd_label = QLabel("密码")
        self.pwd_label.setObjectName("Password")
        self.pwd_label.setMaximumHeight(27)
        self.txt_pwd = InputLine(self, 220, 32, "请输入密码")
        self.txt_pwd.resize(280, 40)
        self.txt_pwd.setObjectName("txt_pwd")
        self.txt_pwd.setEchoMode(QLineEdit.Password)
        self.txt_pwd.setText("123")
        self.btn_login = QPushButton()
        self.btn_login.setObjectName("btn_login")
        self.btn_login.setText("登录")
        self.btn_login.clicked.connect(self.login)
        self.btn_register = QPushButton()
        self.btn_register.setObjectName("btn_register")
        self.btn_register.setText("注册账号")
        self.setLayouts()
        with open('qss/Login_style.qss', 'r', encoding='utf-8') as f:
            self.setStyleSheet(f.read())

    def setLayouts(self):
        self.mainLayout = VBoxLayout()
        self.mainLayout.addWidget(self.header)
        self.mainLayout.addStretch()

        self.infoLayout = HBoxLayout()
        self.infoLayout.addStretch()
        self.labelLayout = VBoxLayout()
        self.labelLayout.addWidget(self.user_label)
        self.labelLayout.addSpacing(10)
        self.labelLayout.addWidget(self.pwd_label)
        self.infoLayout.addLayout(self.labelLayout)
        self.infoLayout.addSpacing(40)
        self.msgLayout = VBoxLayout()
        self.msgLayout.addWidget(self.txt_user)
        self.msgLayout.addSpacing(10)
        self.msgLayout.addWidget(self.txt_pwd)
        self.infoLayout.addLayout(self.msgLayout)
        self.infoLayout.addStretch()
        self.mainLayout.addLayout(self.infoLayout)
        self.mainLayout.addSpacing(15)

        self.mainLayout.addSpacing(40)

        self.loginLayout = HBoxLayout()
        self.loginLayout.addSpacing(150)
        self.loginLayout.addWidget(self.btn_login)
        self.loginLayout.addSpacing(150)

        self.registerLayout = HBoxLayout()
        self.registerLayout.addSpacing(150)
        self.registerLayout.addWidget(self.btn_register)
        self.registerLayout.addSpacing(150)
        self.mainLayout.addLayout(self.loginLayout)
        self.mainLayout.addSpacing(10)
        self.mainLayout.addLayout(self.registerLayout)
        self.mainLayout.addStretch()
        self.frame.setLayout(self.mainLayout)

    def login(self):
        username = self.txt_user.text()
        password = self.txt_pwd.text()
        print(username, password)
        user = self.userService.login(username, password)
        if user is not None:
            self.parent.user = user
            self.parent.loginSuccess()
        else:
            QMessageBox.information(self, "提示", "用户名或密码错误!", QMessageBox.Yes)