添加新建列表功能,需要转码,现在是unicode

This commit is contained in:
liyp 2022-04-18 21:18:08 +08:00
parent 1a34e470fd
commit d1651421db
9 changed files with 131 additions and 16 deletions

View file

@ -3,8 +3,11 @@ import sys
from PyQt5.QtGui import * from PyQt5.QtGui import *
from PyQt5.QtWidgets import * from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from utils.CreateToDo import CreateToDo
from utils.QSSLoader import QSSLoader from utils.QSSLoader import QSSLoader
from view.ImportantView import Important from view.ImportantView import Important
from view.ToDoListView import ToDoList
from view.UserLabel import User from view.UserLabel import User
from view.SelfListWidgetItem import SelfListWidgetItem from view.SelfListWidgetItem import SelfListWidgetItem
from view.AddListLabel import AddListAction from view.AddListLabel import AddListAction
@ -51,7 +54,7 @@ class MainWidget(QWidget):
layout.addWidget(self.stackedWidget, 6) layout.addWidget(self.stackedWidget, 6)
self.one_day = SelfListWidgetItem('我的一天', 1, os.getcwd() + '/../images/sun.svg') self.one_day = SelfListWidgetItem('我的一天', 0, os.getcwd() + '/../images/sun.svg')
self.system_listWidget.setCurrentRow(1) self.system_listWidget.setCurrentRow(1)
# self.one_day.setSelected(True) # self.one_day.setSelected(True)
self.important_item = SelfListWidgetItem('重要', 0, os.getcwd() + '/../images/star.svg') self.important_item = SelfListWidgetItem('重要', 0, os.getcwd() + '/../images/star.svg')
@ -101,11 +104,15 @@ class MainWidget(QWidget):
# 创建新的分组 # 创建新的分组
def CreateNewItem(self): def CreateNewItem(self):
# 创建一个没有名字的item # 创建一个没有名字的item
item = SelfListWidgetItem('新建列表') new_list = '新建列表'
create_todo = CreateToDo('ToDoList', new_list)
item = SelfListWidgetItem(new_list)
item.setTextAlignment(Qt.AlignCenter) item.setTextAlignment(Qt.AlignCenter)
# 使得item是可以编辑的. # 使得item是可以编辑的.
item.setFlags(item.flags() | Qt.ItemIsEditable) item.setFlags(item.flags() | Qt.ItemIsEditable)
self.system_listWidget.addItem(item) self.system_listWidget.addItem(item)
todo_list = ToDoList(new_list)
self.stackedWidget.addWidget(todo_list)
# 创建后就可以编辑item,用户自己起名字. # 创建后就可以编辑item,用户自己起名字.
# self.system_listWidget.editItem(item) # self.system_listWidget.editItem(item)
self.system_listWidget.setItemWidget(item, item.widget) self.system_listWidget.setItemWidget(item, item.widget)

View file

@ -214,7 +214,7 @@ QLabel#head_label{
min-height:150px; min-height:150px;
margin-left: 30px; margin-left: 30px;
color:white; color:white;
background-color:red; /* background-color:red;*/
font-weight:bold; font-weight:bold;
} }

View file

@ -24,7 +24,10 @@ class CreateToDo:
uid = str(uuid.uuid4()) uid = str(uuid.uuid4())
config_path = self.get_config_path() config_path = self.get_config_path()
todo_list_path = config_path + '/{' + uid + '}' todo_list_path = config_path + '/{' + uid + '}'
# if not os.path.exists(todo_list_path):
# os.mkdir(todo_list_path)
default_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') default_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(default_time)
if item_type == 'ToDoList': if item_type == 'ToDoList':
try: try:
""" """
@ -77,10 +80,10 @@ class CreateToDo:
# print(platform.system()) # print(platform.system())
if platform.system() == 'Linux': if platform.system() == 'Linux':
print(os.environ['HOME'] + '.config/PyQtToDoList') # print(os.environ['HOME'] + '/.config/PyQtToDoList')
# print(os.path.expandvars('~')) # print(os.path.expandvars('~'))
print(os.path.expandvars('$HOME') + '.config/PyQtToDoList') # print(os.path.expandvars('$HOME') + '.config/PyQtToDoList')
return os.path.expandvars('$HOME') + '.config/PyQtToDoList' return os.path.expandvars('$HOME') + '/.config/PyQtToDoList'
elif platform.system() == 'Windows': elif platform.system() == 'Windows':
print(os.getcwd() + 'config') print(os.getcwd() + 'config')
return os.getcwd() + 'config' return os.getcwd() + 'config'

View file

@ -30,7 +30,6 @@ class Sync:
def upload_file(self, options): def upload_file(self, options):
client = Client(options) client = Client(options)
# client.execute_request('list')
list1 = client.list('/') list1 = client.list('/')
print(list1) print(list1)
exist = client.check('OpenTodoList') exist = client.check('OpenTodoList')

View file

@ -22,6 +22,7 @@ class Important(QWidget):
head_layout = QHBoxLayout() head_layout = QHBoxLayout()
head_widget = QWidget(self) head_widget = QWidget(self)
head_widget.setStyleSheet('background-color:gray')
# todo : # todo :
# head_widget.setMinimumHeight(175) # head_widget.setMinimumHeight(175)
@ -48,6 +49,7 @@ class Important(QWidget):
# layout.addStretch(0) # layout.addStretch(0)
layout.addWidget(head_widget, 2, Qt.AlignTop) layout.addWidget(head_widget, 2, Qt.AlignTop)
# layout.addSpacing(1) # layout.addSpacing(1)
# layout.addStretch(1)
# layout.addStretch(0) # layout.addStretch(0)
layout.addWidget(self.todo_list, 6, Qt.AlignCenter | Qt.AlignTop) layout.addWidget(self.todo_list, 6, Qt.AlignCenter | Qt.AlignTop)
head_label = QLabel("重要") head_label = QLabel("重要")

View file

@ -26,13 +26,13 @@ class HeadLabel(QLabel):
# self.title.setObjectName('title') # self.title.setObjectName('title')
# 设置字体大小 # 设置字体大小
self.font = QFont() self.font = QFont()
self.font.setPointSize(32) self.font.setPointSize(26)
self.title.setFont(self.font) self.title.setFont(self.font)
# todo: 需要调整布局,修复字体间距 # todo: 需要调整布局,修复字体间距
# self.title.setObjectName('title') # self.title.setObjectName('title')
self.time_label = QLabel(str(month) + '' + str(day) + '日,' + weekday[weekday_index]) self.time_label = QLabel(str(month) + '' + str(day) + '日,' + weekday[weekday_index])
self.time_label.setStyleSheet('color:white;') self.time_label.setStyleSheet('color:white;margin:0px')
# self.time_label.setObjectName('time_label') # self.time_label.setObjectName('time_label')
layout.addWidget(self.title) layout.addWidget(self.title)

View file

@ -30,6 +30,7 @@ class MyDay(QWidget):
head_layout = QHBoxLayout() # 头部总布局 head_layout = QHBoxLayout() # 头部总布局
head_widget = QWidget(self) head_widget = QWidget(self)
head_widget.setStyleSheet('background-color:gray')
# head_widget.setMinimumHeight(175) # head_widget.setMinimumHeight(175)
# head_widget.setMaximumHeight(180) # head_widget.setMaximumHeight(180)
@ -52,6 +53,7 @@ class MyDay(QWidget):
# head_left_layout = QVBoxLayout() # head_left_layout = QVBoxLayout()
layout.addWidget(head_widget, 2, Qt.AlignTop) layout.addWidget(head_widget, 2, Qt.AlignTop)
# layout.addStretch(1)
# layout.addSpacing(1) # layout.addSpacing(1)
self.head_label = HeadLabel() self.head_label = HeadLabel()

View file

@ -1,7 +0,0 @@
from PyQt5.QtWidgets import *
class ToDoListItem(QListWidgetItem):
def __init__(self):
super(ToDoListItem, self).__init__()
self.widget = QWidget()

109
view/ToDoListView.py Normal file
View file

@ -0,0 +1,109 @@
import os
import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
from view.AddToDoLabel import AddToDoAction
class ToDoList(QWidget):
def __init__(self, list_name):
super(ToDoList, self).__init__()
self.setObjectName('important')
self.setAttribute(Qt.WA_StyledBackground)
# todo : 使用网格布局设置背景图
self.setStyleSheet('#important{background-image:url("../images/10.jpg");border-radius: 10px;}')
# 布局样式:最外面一个大的垂直布局,里面的最上面标题是一个水平布局,水平布局显示的是一个垂直布局和一个右边的选项,用来更换背景
# 布局样式继承QWidget,里面一个垂直布局最上面一个QWidget用来设置头部布局
# 头部QWidget里面一个水平布局水平布局里面一个QWidget方便设置整体位置然后是一个
layout = QVBoxLayout()
head_layout = QHBoxLayout()
head_widget = QWidget(self)
# todo :
# head_widget.setMinimumHeight(175)
self.todo_list = QListWidget()
self.todo_list.setObjectName('todo_list')
# todo : 重写QLabel实现添加功能
# 添加ToDo的标签
self.add_todo = AddToDoAction()
self.add_todo.setAlignment(Qt.AlignCenter)
# self.add_todo.setPlaceholderText('添加任务')
# head_widget.setMaximumHeight(100)
# head_widget.
# head_widget.setObjectName('head_widget')
head_widget.setAttribute(Qt.WA_StyledBackground)
# self.setStyleSheet('#head_widget{margin:50px}')
# head_widget.setPalette(palette)
head_widget.setLayout(head_layout)
head_layout.setAlignment(Qt.AlignCenter)
# head_left_layout = QVBoxLayout()
# layout.addStretch(0)
layout.addWidget(head_widget, 2, Qt.AlignTop)
# layout.addSpacing(1)
# layout.addStretch(1)
# layout.addStretch(0)
layout.addWidget(self.todo_list, 6, Qt.AlignCenter | Qt.AlignTop)
head_label = QLabel(list_name)
head_label.setObjectName('head_label')
font = QFont()
font.setPointSize(32)
head_label.setFont(font)
layout.addStretch(1)
head_layout.addWidget(head_label, 8)
layout.addStretch(1)
layout.addWidget(self.add_todo, 2, Qt.AlignHCenter)
self.menu_image = QPushButton()
self.menu_image.setObjectName('menu_image')
self.menu_image.setFixedSize(30, 30)
# self.menu_image.setScaledContents(True)
pic_btn = QPixmap(os.getcwd() + "/../images/menu.png")
self.menu_image.setIcon(QIcon(pic_btn))
# self.menu_image.setFixedSize(QPixmap(os.getcwd() + "/../images/menu.png").size())
# head_layout.addLayout(head_left_layout)
head_layout.addWidget(self.menu_image, 2)
head_layout.addStretch(1)
self.setLayout(layout)
# self.menu_image.clicked.connect(self.menu_action)
button_menu = QMenu(self)
# 背景透明
button_menu.setAttribute(Qt.WA_TranslucentBackground)
# 无边框、去掉自带阴影
button_menu.setWindowFlags(
button_menu.windowFlags() | Qt.FramelessWindowHint | Qt.NoDropShadowWindowHint)
self.menu_image.setMenu(button_menu)
theme_label = QAction(self)
theme_label.setText('主题')
theme_label.setDisabled(True)
button_menu.addAction(theme_label)
button_menu.addSeparator()
# button_menu
for i in range(11):
label_action = QAction(self)
label_action.setIcon(QIcon('../images/' + str(i) + '.jpg'))
label_action.setText(str(i))
label_action.triggered.connect(lambda: self.menu_action(str(i)))
button_menu.addAction(label_action)
# todo : 下面的方法实现点击更换主题的功能
def menu_action(self, count):
# 点击按钮
# self.menu_label = ChangeTheme()
self.setStyleSheet('#important{background-image:url("../images/4.jpg");'
'background-position: center; border-radius: 10px;'
'}')
print('选中:' + count)