瞎搞一通没什么进展!

This commit is contained in:
liyp 2022-04-12 21:34:18 +08:00
parent e009539a03
commit f760d0d1a7
12 changed files with 278 additions and 31 deletions

View file

@ -1,3 +1,16 @@
# pyqt-todolist # pyqt-todolist
使用Pyqt开发的todo list软件 使用Pyqt开发的todo list软件
- [x] 用户信息布局
- [ ] 用户信息右键及功能实现
- [x] 待办事项列表布局实现
- [ ] 待办事项列表功能实现
- [ ] 待办事项列表右键功能实现
- [ ] 右边`QStackLayout`布局
- [ ] “我的一天”和“重要”布局实现
- [ ] 添加的通用布局实现
- [ ] 更换主题功能
- [ ] 登录`nextcloud`及其他`WebDav`和同步功能
- [ ] 添加“设置”功能
- [ ] 拖拽排序功能

0
TODO Normal file
View file

View file

@ -4,6 +4,7 @@ from PyQt5.QtGui import *
from PyQt5.QtWidgets import * from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from utils.QSSLoader import QSSLoader from utils.QSSLoader import QSSLoader
from view.ImportantView import Important
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
@ -22,6 +23,7 @@ class MainWidget(QWidget):
self.sub_layout.addWidget(self.user_label, 2) self.sub_layout.addWidget(self.user_label, 2)
# 左侧列表 # 左侧列表
self.system_listWidget = QListWidget(self) self.system_listWidget = QListWidget(self)
self.system_listWidget.setFrameShape(QListWidget.NoFrame)
self.sub_layout.addWidget(self.system_listWidget, 15) self.sub_layout.addWidget(self.system_listWidget, 15)
# 可自定义添加的listWidget # 可自定义添加的listWidget
@ -42,9 +44,11 @@ class MainWidget(QWidget):
# 右侧层叠窗口 # 右侧层叠窗口
my_day=MyDay() self.my_day = MyDay()
self.important = Important()
self.stackedWidget = QStackedWidget(self) self.stackedWidget = QStackedWidget(self)
self.stackedWidget.addWidget(my_day) self.stackedWidget.addWidget(self.my_day)
self.stackedWidget.addWidget(self.important)
layout.addLayout(self.sub_layout, 2) layout.addLayout(self.sub_layout, 2)
@ -53,7 +57,9 @@ class MainWidget(QWidget):
self.one_day = SelfListWidgetItem('我的一天', 1, os.getcwd() + '/../images/sun.svg') self.one_day = SelfListWidgetItem('我的一天', 1, 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 = SelfListWidgetItem('重要', 0, os.getcwd() + '/../images/star.svg') self.important_item = SelfListWidgetItem('重要', 0, os.getcwd() + '/../images/star.svg')
self.system_listWidget.currentRowChanged.connect(self.stackedWidget.setCurrentIndex)
self.setLayout(layout) self.setLayout(layout)
self.initUI() self.initUI()
@ -63,8 +69,8 @@ class MainWidget(QWidget):
self.system_listWidget.addItem(self.one_day) self.system_listWidget.addItem(self.one_day)
self.system_listWidget.setItemWidget(self.one_day, self.one_day.widget) self.system_listWidget.setItemWidget(self.one_day, self.one_day.widget)
self.system_listWidget.addItem(self.important) self.system_listWidget.addItem(self.important_item)
self.system_listWidget.setItemWidget(self.important, self.important.widget) self.system_listWidget.setItemWidget(self.important_item, self.important_item.widget)
# 测试添加下面的 # 测试添加下面的
# self.two_day = SelfListWidgetItem('我的一天', 1, os.getcwd() + '/../images/sun.svg') # self.two_day = SelfListWidgetItem('我的一天', 1, os.getcwd() + '/../images/sun.svg')

View file

@ -47,18 +47,34 @@ QListWidget::item {
/*}*/ /*}*/
/*QPushButton:pressed,*/ /*QPushButton:pressed,*/
/*QPushButton:pressed:focus {*/ /*QPushButton:pressed:focus {*/
/* *//* 改变背景色 *//* */ /* 改变背景色*/
/* background-color: #f50057;*/ /* background-color: #f50057;*/
/* *//* 改变边框风格 *//* */ /* 改变边框风格*/
/* border-style:inset; */ /* border-style:inset;*/
/* *//* 改变边框风格 *//* */ /* 改变边框风格*/
/* border-style:inset; */ /* border-style:inset;*/
/*}*/ /*}*/
/*QPushButton#upload_btn {*/ /*设置堆栈按钮样式*/
QPushButton#menu_image {
/* padding: 3px 20px;*/ /* padding: 3px 20px;*/
/* text-align:center;*/ /* text-align:center;*/
/*}*/ background-color:#f3f3f3;
border-radius:15px;
}
QPushButton#menu_image:hover {
/* padding: 3px 20px;*/
/* text-align:center;*/
background-color:#dddddd;
border-radius:15px;
}
QPushButton#menu_image:pressed {
/* padding: 3px 20px;*/
/* text-align:center;*/
background-color:#d4d4d4;
border-radius:15px;
}
@ -98,6 +114,32 @@ QLabel#AddListAction::hover{
background: #eaeaea; background: #eaeaea;
/* padding-right:25px;*/ /* padding-right:25px;*/
} }
QLabel#title {
/* padding-top:20px;*/
font-size:32px;
color:white;
margin-left: 30px;
font-weight:bold;
}
QLabel#time_label{
color:white;
margin-left: 30px;
font-size:20px;
}
/*QWidget#head_widget{*/
/* margin:50px;*/
/* background-color:blanchedalmond;*/
/*}*/
QLabel#head_label{
/* margin: 30px;*/
}
#my_day{
background-image:url("../images/2.jpg");
background-position: center;
border-radius: 10px;
padding-top:40px;}
/*QLineEdit {*/ /*QLineEdit {*/
/* border: 2px solid rgb(52,52,52);*/ /* border: 2px solid rgb(52,52,52);*/

1
test/ConfigparserTest.py Normal file
View file

@ -0,0 +1 @@
import configparser

View file

@ -13,10 +13,10 @@ class AddListAction(QLabel):
layout = QHBoxLayout() layout = QHBoxLayout()
self.widget.setLayout(layout) self.widget.setLayout(layout)
self.add_image = QLabel() self.add_image = QLabel()
self.add_image.setPixmap(QPixmap(os.getcwd() + '/../images/add.png')) self.add_image.setPixmap(QPixmap(os.getcwd() + '/../images/add.png'))
# self.add_image.setObjectName('pic_label') # self.add_image.setObjectName('pic_label')
self.add_text = QLabel("新建列表") self.add_text = QLabel("新建列表")
layout.addWidget(self.add_image, 3) layout.addWidget(self.add_image, 3)
layout.addWidget(self.add_text, 4) layout.addWidget(self.add_text, 4)
# self.set

49
view/HeadDemo.py Normal file
View file

@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'HeadDemo.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.widget = QtWidgets.QWidget(Form)
self.widget.setGeometry(QtCore.QRect(40, 90, 276, 90))
self.widget.setObjectName("widget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget)
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.label = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(32)
self.label.setFont(font)
self.label.setObjectName("label")
self.verticalLayout_2.addWidget(self.label)
self.label_2 = QtWidgets.QLabel(self.widget)
self.label_2.setObjectName("label_2")
self.verticalLayout_2.addWidget(self.label_2)
self.horizontalLayout.addLayout(self.verticalLayout_2)
self.pushButton = QtWidgets.QPushButton(self.widget)
self.pushButton.setStyleSheet("")
self.pushButton.setObjectName("pushButton")
self.horizontalLayout.addWidget(self.pushButton)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "我的一天"))
self.label_2.setText(_translate("Form", "2022-04-12"))
self.pushButton.setText(_translate("Form", "PushButton"))

64
view/HeadDemo.ui Normal file
View file

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>40</x>
<y>90</y>
<width>276</width>
<height>90</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>32</pointsize>
</font>
</property>
<property name="text">
<string>我的一天</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>2022-04-12</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

40
view/MyDayHeadLabel.py Normal file
View file

@ -0,0 +1,40 @@
from datetime import datetime
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import *
class HeadLabel(QLabel):
def __init__(self):
super(HeadLabel, self).__init__()
self.setObjectName('head_label')
layout = QVBoxLayout()
# self.resize(200,100)
# widget = QWidget(self)
# widget.setLayout(layout)
# self.setMinimumHeight(300)
# self.setMinimumWidth(300)
# widget.setMaximumHeight(100)
# 设置当前时间
weekday = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
weekday_index = datetime.now().weekday()
month = datetime.now().month
day = datetime.now().day
# 输出日期示例
# print(str(month) + '月' + str(day) + '日,' + weekday[weekday_index])
self.title = QLabel("我的一天")
# 设置字体大小
self.font = QFont()
self.font.setPointSize(32)
self.title.setFont(self.font)
self.title.setObjectName('title')
self.time_label = QLabel(str(month) + '' + str(day) + '日,' + weekday[weekday_index])
self.time_label.setObjectName('time_label')
layout.addWidget(self.title)
layout.addWidget(self.time_label)
self.setLayout(layout)
self.show()

View file

@ -3,29 +3,62 @@ 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
import datetime from view.MyDayHeadLabel import HeadLabel
class MyDay(QWidget): class MyDay(QWidget):
def __init__(self): def __init__(self):
super(MyDay, self).__init__() super(MyDay, self).__init__()
self.setObjectName('my_day')
self.setAttribute(Qt.WA_StyledBackground)
# todo : 使用网格布局设置背景图
# 下面这一句有问题,需要修复修改主题的实现方法
# self.setStyleSheet('#my_day{background-image:url("../images/2.jpg");')
# 无效
# palette = QPalette()
# palette.setBrush(QPalette.Background,
# QBrush(QPixmap(os.getcwd() + "/../images/0.jpg").scaled(self.width(), self.height())))
# self.setPalette(palette)
# 布局样式:最外面一个大的垂直布局,里面的最上面标题是一个水平布局,水平布局显示的是一个垂直布局和一个右边的选项,用来更换背景 # 布局样式:最外面一个大的垂直布局,里面的最上面标题是一个水平布局,水平布局显示的是一个垂直布局和一个右边的选项,用来更换背景
# 布局样式继承QWidget,里面一个垂直布局最上面一个QWidget用来设置头部布局
# 头部QWidget里面一个水平布局水平布局里面一个QWidget方便设置整体位置然后是一个
layout = QVBoxLayout() layout = QVBoxLayout()
head_layout = QHBoxLayout() head_layout = QHBoxLayout()
head_left_layout = QVBoxLayout()
layout.addLayout(head_layout) head_widget = QWidget(self)
head_layout.addLayout(head_left_layout) 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.addWidget(head_widget, 2)
head_label = HeadLabel()
layout.addStretch(0)
head_layout.addWidget(head_label,8)
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.setLayout(layout)
# todo : 取消这几个不必要的layout直接重写QLabel实现上面的标签显示这样不行 # todo : 下面的方法实现点击更换主题的功能
def menu_action(self):
pass
# 设置当前时间
weekday = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
weekday_index = datetime.datetime.now().weekday()
month = datetime.datetime.now().month
day = datetime.datetime.now().day
print(str(month) + '' + str(day) + '日,' + weekday[weekday_index])
self.title = QLabel("我的一天")
self.time_label = QLabel(str(month) + '' + str(day) + '日,' + weekday[weekday_index])
head_left_layout.addWidget(self.title)
head_left_layout.addWidget(self.time_label)

0
view/StackListItem.py Normal file
View file

View file

@ -1,5 +1,4 @@
import os import os
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from PyQt5.QtGui import * from PyQt5.QtGui import *
from PyQt5.QtWidgets import * from PyQt5.QtWidgets import *