WeChatMsg/app/Ui/mainview.py

127 lines
4.8 KiB
Python
Raw Normal View History

2023-01-11 13:04:19 +08:00
# -*- coding: utf-8 -*-
"""
@File : mainview.py
@Author : Shuaikang Zhou
@Time : 2022/12/13 15:07
@IDE : Pycharm
@Version : Python3.10
2023-02-02 00:26:44 +08:00
@comment : 主窗口
2023-01-11 13:04:19 +08:00
"""
2023-10-29 23:15:46 +08:00
import os.path
2023-01-11 13:04:19 +08:00
from PyQt5.QtCore import *
from PyQt5.QtGui import *
2023-03-31 11:15:44 +08:00
from PyQt5.QtWidgets import *
2023-01-11 13:04:19 +08:00
from app.DataBase import data
from . import mainwindow
2023-10-29 23:15:46 +08:00
from .ICON import Icon
2023-01-11 13:04:19 +08:00
from .chat import chat
2023-01-21 13:59:37 +08:00
from .contact import contact
2023-01-11 13:04:19 +08:00
class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
2023-01-11 13:04:19 +08:00
exitSignal = pyqtSignal()
# username = ''
def __init__(self, username, parent=None):
super(MainWinController, self).__init__(parent)
self.setupUi(self)
2023-10-29 23:15:46 +08:00
self.setWindowIcon(Icon.MainWindow)
2023-01-11 13:04:19 +08:00
self.Me = data.get_myinfo()
self.setAttribute(Qt.WA_AttributeCount)
self.chatView = chat.ChatController(self.Me, parent=None)
self.lay = QHBoxLayout()
2023-11-01 22:54:56 +08:00
self.page_chat.setLayout(self.lay)
self.lay.addWidget(self.chatView)
2023-11-01 22:54:56 +08:00
self.contactView = contact.ContactController(self.Me, parent=None)
self.lay0 = QHBoxLayout()
2023-11-01 22:54:56 +08:00
self.page_contact.setLayout(self.lay0)
self.lay0.addWidget(self.contactView)
2023-01-11 13:04:19 +08:00
self.btn_chat.clicked.connect(self.chat_view) # 聊天按钮
self.btn_contact.clicked.connect(self.contact_view)
2023-03-31 11:15:44 +08:00
# self.btn_myinfo.clicked.connect(self.myInfo)
2023-01-11 13:04:19 +08:00
self.btn_about.clicked.connect(self.about)
self.now_btn = self.btn_chat
self.btn_about.setContextMenuPolicy(Qt.CustomContextMenu)
self.btn_about.customContextMenuRequested.connect(self.create_rightmenu) # 连接到菜单显示函数
self.last_btn = None
2023-01-21 13:59:37 +08:00
self.lastView = None
2023-01-11 13:04:19 +08:00
self.show_avatar()
# 创建右键菜单函数
2023-01-21 13:59:37 +08:00
2023-01-11 13:04:19 +08:00
def create_rightmenu(self):
# 菜单对象
self.groupBox_menu = QMenu(self)
self.actionA = QAction(QIcon('image/保存.png'), u'保存数据',
self) # self.actionA = self.contextMenu.addAction(QIcon("images/0.png"),u'| 动作A')
self.actionA.setShortcut('Ctrl+S') # 设置快捷键
self.groupBox_menu.addAction(self.actionA) # 把动作A选项添加到菜单
self.actionB = QAction(QIcon('image/删除.png'), u'删除数据', self)
self.groupBox_menu.addAction(self.actionB)
# self.actionA.triggered.connect(self.button) # 将动作A触发时连接到槽函数 button
# self.actionB.triggered.connect(self.button_2)
self.groupBox_menu.popup(QCursor.pos()) # 声明当鼠标在groupBox控件上右击时在鼠标位置显示右键菜单 ,exec_,popup两个都可以
2023-01-21 13:59:37 +08:00
2023-01-11 13:04:19 +08:00
def show_avatar(self):
avatar = data.get_avator(self.Me.username)
2023-10-29 23:15:46 +08:00
if not os.path.exists(avatar):
avatar = './app/data/icons/default_avatar.svg'
2023-11-01 22:54:56 +08:00
pixmap = QPixmap(avatar).scaled(60, 60) # 按指定路径找到图片
2023-01-11 13:04:19 +08:00
self.myavatar.setPixmap(pixmap) # 在label上显示图片
def chat_view(self):
2023-02-02 00:26:44 +08:00
"""
聊天窗口
"""
2023-01-11 13:04:19 +08:00
self.now_btn = self.btn_chat
self.now_btn.setStyleSheet(
"QPushButton {background-color: rgb(198,198,198);}")
if self.last_btn and self.last_btn != self.now_btn:
self.last_btn.setStyleSheet("QPushButton {background-color: rgb(240,240,240);}"
"QPushButton:hover{background-color: rgb(209,209,209);}\n")
self.last_btn = self.btn_chat
2023-11-01 22:54:56 +08:00
self.stackedWidget.setCurrentIndex(0)
2023-01-11 13:04:19 +08:00
self.chatView.showChat()
def contact_view(self):
2023-02-02 00:26:44 +08:00
"""
联系人窗口
"""
2023-01-11 13:04:19 +08:00
self.now_btn = self.btn_contact
self.now_btn.setStyleSheet(
"QPushButton {background-color: rgb(198,198,198);}")
if self.last_btn and self.last_btn != self.now_btn:
self.last_btn.setStyleSheet("QPushButton {background-color: rgb(240,240,240);}"
"QPushButton:hover{background-color: rgb(209,209,209);}\n")
self.last_btn = self.btn_contact
2023-11-01 22:54:56 +08:00
self.stackedWidget.setCurrentIndex(1)
2023-01-21 13:59:37 +08:00
self.contactView.showContact()
2023-01-11 13:04:19 +08:00
def myInfo(self):
2023-02-02 00:26:44 +08:00
"""
显示我的个人信息
"""
2023-01-11 13:04:19 +08:00
self.now_btn = self.btn_myinfo
self.now_btn.setStyleSheet(
"QPushButton {background-color: rgb(198,198,198);}")
if self.last_btn and self.last_btn != self.now_btn:
self.last_btn.setStyleSheet("QPushButton {background-color: rgb(240,240,240);}"
"QPushButton:hover{background-color: rgb(209,209,209);}\n")
self.last_btn = self.now_btn
def about(self):
2023-02-02 00:26:44 +08:00
"""
关于
"""
2023-01-11 13:04:19 +08:00
QMessageBox.about(self, "关于",
2023-01-23 09:43:44 +08:00
"关于作者\n姓名:周帅康\n邮箱lc863854@mail.nwpu.edu.cn"
2023-01-11 13:04:19 +08:00
)