实现几个简单功能,现在重要的重命名已经实现,还需要实现最小化、列表重命名时信号传递、重写点击done功能
This commit is contained in:
parent
179a8c59a4
commit
bc7b983a5c
16 changed files with 983 additions and 178 deletions
|
@ -5,7 +5,8 @@
|
||||||
- [x] 用户信息布局
|
- [x] 用户信息布局
|
||||||
- [ ] 用户信息右键及功能实现
|
- [ ] 用户信息右键及功能实现
|
||||||
- [x] 待办事项列表布局实现
|
- [x] 待办事项列表布局实现
|
||||||
- [ ] 待办事项列表功能实现
|
- [x] 添加待办事项列表
|
||||||
|
- [x] 待办事项列表功能实现
|
||||||
- [ ] 待办事项列表右键功能实现
|
- [ ] 待办事项列表右键功能实现
|
||||||
- [x] 右边`QStackLayout`布局
|
- [x] 右边`QStackLayout`布局
|
||||||
- [x] “我的一天”和“重要”布局实现
|
- [x] “我的一天”和“重要”布局实现
|
||||||
|
@ -13,4 +14,6 @@
|
||||||
- [x] 更换主题功能
|
- [x] 更换主题功能
|
||||||
- [ ] 登录`nextcloud`及其他`WebDav`和同步功能
|
- [ ] 登录`nextcloud`及其他`WebDav`和同步功能
|
||||||
- [ ] 添加“设置”功能
|
- [ ] 添加“设置”功能
|
||||||
- [ ] 拖拽排序功能
|
- [ ] 拖拽排序功能
|
||||||
|
- [ ] 待办事项的笔记功能
|
||||||
|
- [ ] 最小化到任务栏功能
|
|
@ -1 +1 @@
|
||||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1648731999752" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="18312" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 32c265.088 0 480 214.912 480 480 0 265.088-214.912 480-480 480-265.088 0-480-214.912-480-480C32 246.912 246.912 32 512 32z m0 64C282.24 96 96 282.24 96 512s186.24 416 416 416 416-186.24 416-416S741.76 96 512 96z m254.4 257.6a32 32 0 0 1 0 45.248l-271.552 271.552a32 32 0 0 1-48.704-4.096 33.216 33.216 0 0 1-5.568-4.48l-158.4-158.4a32 32 0 1 1 45.248-45.248l144.576 144.576 249.152-249.152a32 32 0 0 1 45.248 0z" p-id="18313" fill="#e6e6e6"></path></svg>
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1650792481486" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5910" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M511.905018 0.189965C229.187475 0.189965 0 229.37744 0 512.094982s229.187475 511.905018 511.905018 511.905018 511.905018-229.187475 511.905017-511.905018S794.62256 0.189965 511.905018 0.189965z m237.335963 429.350335l-255.952509 255.952509c-24.95537 24.815396-65.277888 24.815396-90.233258 0l-127.976254-127.976254c-25.095344-24.915377-25.245316-65.467853-0.329939-90.563197 24.915377-25.095344 65.467853-25.245316 90.563196-0.329939l82.554683 83.204562 210.530936-210.530937c26.805026-23.035726 67.20753-19.976293 90.233258 6.828733 20.606177 23.98555 20.606177 59.418975 0 83.404525h0.609887z" fill="#13C79B" p-id="5911"></path></svg>
|
Before Width: | Height: | Size: 837 B After Width: | Height: | Size: 1,013 B |
1
images/refresh.svg
Normal file
1
images/refresh.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1650772659942" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5102" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M832 512a32 32 0 0 0-32 32c0 158.784-129.216 288-288 288s-288-129.216-288-288 129.216-288 288-288c66.208 0 129.536 22.752 180.608 64H608a32 32 0 0 0 0 64h160a32 32 0 0 0 32-32V192a32 32 0 0 0-64 0v80.96A350.464 350.464 0 0 0 512 192C317.92 192 160 349.92 160 544s157.92 352 352 352 352-157.92 352-352a32 32 0 0 0-32-32" p-id="5103"></path></svg>
|
After Width: | Height: | Size: 722 B |
124
main/main.py
124
main/main.py
|
@ -5,7 +5,7 @@ from PyQt5.QtWidgets import *
|
||||||
from PyQt5.QtCore import Qt
|
from PyQt5.QtCore import Qt
|
||||||
import configparser
|
import configparser
|
||||||
|
|
||||||
from utils.BasicUtils import get_todo_list, remove_todo_list
|
from utils.BasicUtils import get_todo_list, remove_todo_list, change_value
|
||||||
from utils.CreateToDo import CreateToDo
|
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
|
||||||
|
@ -17,60 +17,6 @@ from view.AddListLabel import AddListAction
|
||||||
from view.MyDayView import MyDay
|
from view.MyDayView import MyDay
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# class SelfListWidgetItem(QListWidgetItem):
|
|
||||||
# """
|
|
||||||
# :param item_name: 列表名称
|
|
||||||
# :param uid: 当前列表的uuid
|
|
||||||
# :param todo_count: 设置剩余代办数量,默认为零
|
|
||||||
# :param show_icon: 设置显示的图标路径,默认为空
|
|
||||||
# """
|
|
||||||
#
|
|
||||||
# def __init__(self, item_name, todo_count=0, uid=None, show_icon=None):
|
|
||||||
# super(SelfListWidgetItem, self).__init__()
|
|
||||||
# layout = QHBoxLayout()
|
|
||||||
# # print(show_icon)
|
|
||||||
# self.item_name = item_name
|
|
||||||
#
|
|
||||||
# self.todo_count = todo_count
|
|
||||||
# self.show_icon = show_icon
|
|
||||||
# # 布局
|
|
||||||
# self.widget = QWidget()
|
|
||||||
# self.widget.setLayout(layout)
|
|
||||||
#
|
|
||||||
# # self.list_item = QLabel('')
|
|
||||||
#
|
|
||||||
# # 添加左边的图标和右边的气泡
|
|
||||||
# if self.show_icon:
|
|
||||||
# self.icon_label = QLabel('')
|
|
||||||
# self.icon_label.setPixmap(
|
|
||||||
# QPixmap(self.show_icon).scaled(30, 30, Qt.IgnoreAspectRatio, Qt.SmoothTransformation))
|
|
||||||
# layout.addWidget(self.icon_label, 1)
|
|
||||||
# # 添加
|
|
||||||
# self.item_name_label = QLabel(self.item_name)
|
|
||||||
# # print(self.item_name)
|
|
||||||
# self.item_name_label.setObjectName('item_name_label')
|
|
||||||
#
|
|
||||||
# layout.addWidget(self.item_name_label, 3)
|
|
||||||
#
|
|
||||||
# if self.todo_count:
|
|
||||||
# # 打印出代办数目
|
|
||||||
# print('todo_count:', self.todo_count)
|
|
||||||
# self.todo_count_label = QLabel(str(self.todo_count))
|
|
||||||
# self.todo_count_label.setFixedSize(16, 16)
|
|
||||||
# self.todo_count_label.setScaledContents(True)
|
|
||||||
# self.todo_count_label.setObjectName('todo_count_label')
|
|
||||||
# self.todo_count_label.setAlignment(Qt.AlignCenter)
|
|
||||||
# layout.addWidget(self.todo_count_label, 1)
|
|
||||||
# # 设置自定义的QListWidgetItem的sizeHint,不然无法显示
|
|
||||||
# self.setSizeHint(self.widget.sizeHint())
|
|
||||||
# MainWidget().system_listWidget.change_list_name.connect(self.change_name)
|
|
||||||
#
|
|
||||||
# def change_name(self):
|
|
||||||
# pass
|
|
||||||
#
|
|
||||||
|
|
||||||
class MainWidget(QWidget):
|
class MainWidget(QWidget):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(MainWidget, self).__init__()
|
super(MainWidget, self).__init__()
|
||||||
|
@ -122,6 +68,8 @@ class MainWidget(QWidget):
|
||||||
self.initUI()
|
self.initUI()
|
||||||
|
|
||||||
def initUI(self):
|
def initUI(self):
|
||||||
|
# 先清除列表,方便后面调用
|
||||||
|
self.system_listWidget.clear()
|
||||||
# 系统默认的两个 item
|
# 系统默认的两个 item
|
||||||
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)
|
||||||
|
@ -138,12 +86,6 @@ class MainWidget(QWidget):
|
||||||
self.load_item(load[0], load[1])
|
self.load_item(load[0], load[1])
|
||||||
# self.system_listWidget.addScrollBarWidget(False)
|
# self.system_listWidget.addScrollBarWidget(False)
|
||||||
|
|
||||||
# 测试添加下面的
|
|
||||||
# self.two_day = SelfListWidgetItem('我的一天', 1, os.getcwd() + '/../images/sun.svg')
|
|
||||||
# self.custom.addItem(self.two_day)
|
|
||||||
# self.custom.setItemWidget(self.two_day, self.two_day.widget)
|
|
||||||
# self.custom.
|
|
||||||
|
|
||||||
def change_list(self):
|
def change_list(self):
|
||||||
print(self.system_listWidget.currentItem().text())
|
print(self.system_listWidget.currentItem().text())
|
||||||
# print(name)
|
# print(name)
|
||||||
|
@ -163,7 +105,7 @@ class MainWidget(QWidget):
|
||||||
|
|
||||||
rename_action = QAction(u'重命名', self)
|
rename_action = QAction(u'重命名', self)
|
||||||
|
|
||||||
copy_action = QAction("复制分组", self)
|
# copy_action = QAction("复制分组", self)
|
||||||
del_action = QAction("删除分组", self)
|
del_action = QAction("删除分组", self)
|
||||||
|
|
||||||
# 查看右键时是否在item上面,如果不在.就不显示删除和修改.
|
# 查看右键时是否在item上面,如果不在.就不显示删除和修改.
|
||||||
|
@ -173,10 +115,11 @@ class MainWidget(QWidget):
|
||||||
pop_menu.addAction(rename_action)
|
pop_menu.addAction(rename_action)
|
||||||
|
|
||||||
rename_action.triggered.connect(self.rename_item)
|
rename_action.triggered.connect(self.rename_item)
|
||||||
copy_action.triggered.connect(self.create_item)
|
# copy_action.triggered.connect(self.create_item)
|
||||||
del_action.triggered.connect(self.delete_item)
|
del_action.triggered.connect(self.delete_item)
|
||||||
pop_menu.exec_(self.system_listWidget.mapToGlobal(position))
|
pop_menu.exec_(self.system_listWidget.mapToGlobal(position))
|
||||||
|
|
||||||
|
# 加载左侧列表
|
||||||
def load_item(self, list_name, uid):
|
def load_item(self, list_name, uid):
|
||||||
item = SelfListWidgetItem(list_name, 0, uid)
|
item = SelfListWidgetItem(list_name, 0, uid)
|
||||||
item.setTextAlignment(Qt.AlignCenter)
|
item.setTextAlignment(Qt.AlignCenter)
|
||||||
|
@ -185,8 +128,9 @@ class MainWidget(QWidget):
|
||||||
self.system_listWidget.addItem(item)
|
self.system_listWidget.addItem(item)
|
||||||
todo_list = ToDoList(list_name, uid)
|
todo_list = ToDoList(list_name, uid)
|
||||||
# 信号测试成功!!
|
# 信号测试成功!!
|
||||||
|
# 更新重要内容
|
||||||
todo_list.update_signal.connect(self.important.refresh_action)
|
todo_list.update_signal.connect(self.important.refresh_action)
|
||||||
|
# 删除分组时可用
|
||||||
self.important.update_signal.connect(todo_list.refresh_action)
|
self.important.update_signal.connect(todo_list.refresh_action)
|
||||||
# 创建后就可以编辑item,用户自己起名字.
|
# 创建后就可以编辑item,用户自己起名字.
|
||||||
# self.system_listWidget.editItem(item)
|
# self.system_listWidget.editItem(item)
|
||||||
|
@ -194,7 +138,7 @@ class MainWidget(QWidget):
|
||||||
|
|
||||||
self.system_listWidget.setItemWidget(item, item.widget)
|
self.system_listWidget.setItemWidget(item, item.widget)
|
||||||
|
|
||||||
# 创建新的分组
|
# 点击创建新的分组
|
||||||
def create_item(self, new_list='新建列表', uid=None):
|
def create_item(self, new_list='新建列表', uid=None):
|
||||||
# 创建一个没有名字的item
|
# 创建一个没有名字的item
|
||||||
# new_list = '新建列表'
|
# new_list = '新建列表'
|
||||||
|
@ -207,7 +151,6 @@ class MainWidget(QWidget):
|
||||||
self.system_listWidget.addItem(item)
|
self.system_listWidget.addItem(item)
|
||||||
todo_list = ToDoList(new_list, create_todo_uid)
|
todo_list = ToDoList(new_list, create_todo_uid)
|
||||||
|
|
||||||
|
|
||||||
self.stackedWidget.addWidget(todo_list)
|
self.stackedWidget.addWidget(todo_list)
|
||||||
# 创建后就可以编辑item,用户自己起名字.
|
# 创建后就可以编辑item,用户自己起名字.
|
||||||
# self.system_listWidget.editItem(item)
|
# self.system_listWidget.editItem(item)
|
||||||
|
@ -220,18 +163,57 @@ class MainWidget(QWidget):
|
||||||
self.system_listWidget.takeItem(self.system_listWidget.currentRow())
|
self.system_listWidget.takeItem(self.system_listWidget.currentRow())
|
||||||
|
|
||||||
# 重命名分组
|
# 重命名分组
|
||||||
|
# todo : 重命名还没做好
|
||||||
def rename_item(self):
|
def rename_item(self):
|
||||||
curRow = self.system_listWidget.currentRow()
|
dialog = QDialog()
|
||||||
item = self.system_listWidget.item(curRow)
|
dialog.setWindowTitle('重命名')
|
||||||
item.setFlags(item.flags() | Qt.ItemIsEditable)
|
dialog_layout = QGridLayout()
|
||||||
self.system_listWidget.editItem(item)
|
dialog.resize(300, 200)
|
||||||
self.system_listWidget.itemChanged.connect(lambda: self.ChangeItem(item))
|
dialog.setLayout(dialog_layout)
|
||||||
|
line_edit = QLineEdit()
|
||||||
|
line_edit.setPlaceholderText('请输入新的名字')
|
||||||
|
dialog_layout.addWidget(line_edit, 0, 1, 1, 2)
|
||||||
|
self.confirm_button = QPushButton('确认修改')
|
||||||
|
dialog_layout.addWidget(self.confirm_button, 1, 1)
|
||||||
|
# self.load_list = get_todo_list()
|
||||||
|
line_edit.textChanged.connect(self.confirm_action)
|
||||||
|
|
||||||
|
# if line_edit.text() != '':
|
||||||
|
# change_value(self.load_list[self.system_listWidget.currentRow() - 2][1], 'title', line_edit.text())
|
||||||
|
# self.confirm_button.clicked.connect(self.initUI)
|
||||||
|
dialog.exec_()
|
||||||
|
#
|
||||||
|
# curRow = self.system_listWidget.currentRow()
|
||||||
|
# item = self.system_listWidget.item(curRow)
|
||||||
|
# item.setFlags(item.flags() | Qt.ItemIsEditable)
|
||||||
|
# self.system_listWidget.editItem(item)
|
||||||
|
# self.system_listWidget.itemChanged.connect(lambda: self.ChangeItem(item))
|
||||||
|
|
||||||
def ChangeItem(self, item):
|
def ChangeItem(self, item):
|
||||||
print(item)
|
print(item)
|
||||||
|
|
||||||
print("test")
|
print("test")
|
||||||
|
|
||||||
|
def confirm_action(self, text):
|
||||||
|
# print(text)
|
||||||
|
self.load_list = get_todo_list()
|
||||||
|
change_value(self.load_list[self.system_listWidget.currentRow() - 2][1], 'title', text)
|
||||||
|
self.confirm_button.clicked.connect(self.load_ui)
|
||||||
|
# self.system_listWidget.itemChanged.connect(lambda: self.ChangeItem(text))
|
||||||
|
|
||||||
|
pass
|
||||||
|
|
||||||
|
def load_ui(self):
|
||||||
|
# 先清除列表,方便后面调用
|
||||||
|
self.system_listWidget.clear()
|
||||||
|
# 系统默认的两个 item
|
||||||
|
self.system_listWidget.addItem(self.one_day)
|
||||||
|
self.system_listWidget.setItemWidget(self.one_day, self.one_day.widget)
|
||||||
|
|
||||||
|
self.system_listWidget.addItem(self.important_item)
|
||||||
|
self.system_listWidget.setItemWidget(self.important_item, self.important_item.widget)
|
||||||
|
self.close()
|
||||||
|
|
||||||
|
|
||||||
class MainWindow(QWidget):
|
class MainWindow(QWidget):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
|
@ -71,7 +71,7 @@ QPushButton#todo_mark_icon,#mark_important {
|
||||||
/* padding: 3px 20px;*/
|
/* padding: 3px 20px;*/
|
||||||
/* text-align:center;*/
|
/* text-align:center;*/
|
||||||
background-color:#f3f3f3;
|
background-color:#f3f3f3;
|
||||||
border-radius:15px;
|
border-radius:20px;
|
||||||
min-width:40px;
|
min-width:40px;
|
||||||
max-width:40px;
|
max-width:40px;
|
||||||
min-height:40px;
|
min-height:40px;
|
||||||
|
@ -103,7 +103,7 @@ QLabel#add_todo_label{
|
||||||
background-color: rgba(211, 211, 211, 0.5);
|
background-color: rgba(211, 211, 211, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
QLineEdit#login_line{
|
QLineEdit#login_line,#rename_line{
|
||||||
border: none;
|
border: none;
|
||||||
background:transparent;
|
background:transparent;
|
||||||
min-width:400px;
|
min-width:400px;
|
||||||
|
|
77
test/Data/style.qss
Normal file
77
test/Data/style.qss
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
/*左侧*/
|
||||||
|
#listWidget {
|
||||||
|
outline: 0px;
|
||||||
|
max-width: 165px;
|
||||||
|
background-color: rgb(240, 240, 240);
|
||||||
|
}
|
||||||
|
|
||||||
|
#listWidget::item {
|
||||||
|
min-height: 45px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#listWidget::item:hover {
|
||||||
|
background-color: rgb(225, 230, 235);
|
||||||
|
}
|
||||||
|
|
||||||
|
#listWidget::item:selected {
|
||||||
|
color: black;
|
||||||
|
background-color: rgb(255, 255, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*右侧*/
|
||||||
|
#titleLabel1,#titleLabel2,#titleLabel3,#titleLabel4,#titleLabel5,#titleLabel6,#titleLabel7,#titleLabel8 {
|
||||||
|
min-width: 75px;
|
||||||
|
max-width: 75px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#right1,#right2,#right3,#right4,#right5,#right6 {
|
||||||
|
margin-left: 25px;
|
||||||
|
color: rgb(128, 128, 128);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*所有按钮*/
|
||||||
|
QPushButton {
|
||||||
|
max-width: 80px;
|
||||||
|
max-height: 24px;
|
||||||
|
min-height: 24px;
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: rgb(244, 244, 244);
|
||||||
|
border: 1px solid rgb(167, 167, 167);
|
||||||
|
}
|
||||||
|
QPushButton:hover {
|
||||||
|
background-color: rgb(190, 231, 253);
|
||||||
|
}
|
||||||
|
QPushButton:pressed {
|
||||||
|
background-color: rgb(244, 244, 244);
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox {
|
||||||
|
max-width: 80px;
|
||||||
|
max-height: 20px;
|
||||||
|
min-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox {
|
||||||
|
border: 1px solid rgb(167, 167, 167);
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#listWidgetUser {
|
||||||
|
min-width: 290px;
|
||||||
|
max-width: 290px;
|
||||||
|
max-height: 120px;
|
||||||
|
min-height: 120px;
|
||||||
|
border-radius: 2px;
|
||||||
|
border: 1px solid rgb(227, 236, 242);
|
||||||
|
background-color: rgb(244, 250, 253);
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::vertical {
|
||||||
|
background: rgb(178, 178, 178);
|
||||||
|
border: -5px solid grey;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
width: 10px;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
|
||||||
|
background: white;
|
||||||
|
}
|
501
test/Lib/SettingUi.py
Normal file
501
test/Lib/SettingUi.py
Normal file
|
@ -0,0 +1,501 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Form implementation generated from reading ui file 'setting.ui'
|
||||||
|
#
|
||||||
|
# Created by: PyQt5 UI code generator 5.5.1
|
||||||
|
#
|
||||||
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
||||||
|
try:
|
||||||
|
from PyQt5 import QtCore, QtWidgets
|
||||||
|
except ImportError:
|
||||||
|
from PySide2 import QtCore, QtWidgets
|
||||||
|
|
||||||
|
|
||||||
|
class Ui_Setting(object):
|
||||||
|
def setupUi(self, Setting):
|
||||||
|
Setting.setObjectName("Setting")
|
||||||
|
Setting.resize(498, 498)
|
||||||
|
self.horizontalLayout = QtWidgets.QHBoxLayout(Setting)
|
||||||
|
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.horizontalLayout.setSpacing(0)
|
||||||
|
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||||
|
self.listWidget = QtWidgets.QListWidget(Setting)
|
||||||
|
self.listWidget.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||||
|
self.listWidget.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
||||||
|
self.listWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
||||||
|
self.listWidget.setObjectName("listWidget")
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
item = QtWidgets.QListWidgetItem()
|
||||||
|
self.listWidget.addItem(item)
|
||||||
|
self.horizontalLayout.addWidget(self.listWidget)
|
||||||
|
self.scrollArea = QtWidgets.QScrollArea(Setting)
|
||||||
|
self.scrollArea.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||||
|
self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
||||||
|
self.scrollArea.setWidgetResizable(True)
|
||||||
|
self.scrollArea.setObjectName("scrollArea")
|
||||||
|
self.scrollAreaWidgetContents = QtWidgets.QWidget()
|
||||||
|
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, -810, 460, 1308))
|
||||||
|
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
|
||||||
|
self.verticalLayout = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents)
|
||||||
|
self.verticalLayout.setContentsMargins(35, 20, 35, 20)
|
||||||
|
self.verticalLayout.setSpacing(20)
|
||||||
|
self.verticalLayout.setObjectName("verticalLayout")
|
||||||
|
self.widget_0 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||||
|
self.widget_0.setObjectName("widget_0")
|
||||||
|
self.formLayout = QtWidgets.QFormLayout(self.widget_0)
|
||||||
|
self.formLayout.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.formLayout.setObjectName("formLayout")
|
||||||
|
self.titleLabel1 = QtWidgets.QLabel(self.widget_0)
|
||||||
|
self.titleLabel1.setObjectName("titleLabel1")
|
||||||
|
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.titleLabel1)
|
||||||
|
self.CheckBox = QtWidgets.QCheckBox(self.widget_0)
|
||||||
|
self.CheckBox.setObjectName("CheckBox")
|
||||||
|
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.CheckBox)
|
||||||
|
self.checkBox = QtWidgets.QCheckBox(self.widget_0)
|
||||||
|
self.checkBox.setChecked(True)
|
||||||
|
self.checkBox.setObjectName("checkBox")
|
||||||
|
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.checkBox)
|
||||||
|
self.checkBox_2 = QtWidgets.QCheckBox(self.widget_0)
|
||||||
|
self.checkBox_2.setChecked(True)
|
||||||
|
self.checkBox_2.setObjectName("checkBox_2")
|
||||||
|
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.checkBox_2)
|
||||||
|
self.checkBox_3 = QtWidgets.QCheckBox(self.widget_0)
|
||||||
|
self.checkBox_3.setObjectName("checkBox_3")
|
||||||
|
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.checkBox_3)
|
||||||
|
self.checkBox_4 = QtWidgets.QCheckBox(self.widget_0)
|
||||||
|
self.checkBox_4.setObjectName("checkBox_4")
|
||||||
|
self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.checkBox_4)
|
||||||
|
self.checkBox_5 = QtWidgets.QCheckBox(self.widget_0)
|
||||||
|
self.checkBox_5.setObjectName("checkBox_5")
|
||||||
|
self.formLayout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.checkBox_5)
|
||||||
|
self.checkBox_6 = QtWidgets.QCheckBox(self.widget_0)
|
||||||
|
self.checkBox_6.setObjectName("checkBox_6")
|
||||||
|
self.formLayout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.checkBox_6)
|
||||||
|
self.verticalLayout.addWidget(self.widget_0)
|
||||||
|
self.widget_1 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||||
|
self.widget_1.setObjectName("widget_1")
|
||||||
|
self.formLayout_8 = QtWidgets.QFormLayout(self.widget_1)
|
||||||
|
self.formLayout_8.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.formLayout_8.setObjectName("formLayout_8")
|
||||||
|
self.titleLabel2 = QtWidgets.QLabel(self.widget_1)
|
||||||
|
self.titleLabel2.setObjectName("titleLabel2")
|
||||||
|
self.formLayout_8.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.titleLabel2)
|
||||||
|
self.checkBox_26 = QtWidgets.QCheckBox(self.widget_1)
|
||||||
|
self.checkBox_26.setObjectName("checkBox_26")
|
||||||
|
self.formLayout_8.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.checkBox_26)
|
||||||
|
self.checkBox_27 = QtWidgets.QCheckBox(self.widget_1)
|
||||||
|
self.checkBox_27.setObjectName("checkBox_27")
|
||||||
|
self.formLayout_8.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.checkBox_27)
|
||||||
|
self.checkBox_28 = QtWidgets.QCheckBox(self.widget_1)
|
||||||
|
self.checkBox_28.setObjectName("checkBox_28")
|
||||||
|
self.formLayout_8.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.checkBox_28)
|
||||||
|
self.checkBox_29 = QtWidgets.QCheckBox(self.widget_1)
|
||||||
|
self.checkBox_29.setObjectName("checkBox_29")
|
||||||
|
self.formLayout_8.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.checkBox_29)
|
||||||
|
self.label_10 = QtWidgets.QLabel(self.widget_1)
|
||||||
|
self.label_10.setObjectName("label_10")
|
||||||
|
self.formLayout_8.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.label_10)
|
||||||
|
self.right1 = QtWidgets.QRadioButton(self.widget_1)
|
||||||
|
self.right1.setObjectName("right1")
|
||||||
|
self.formLayout_8.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.right1)
|
||||||
|
self.right2 = QtWidgets.QRadioButton(self.widget_1)
|
||||||
|
self.right2.setChecked(True)
|
||||||
|
self.right2.setObjectName("right2")
|
||||||
|
self.formLayout_8.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.right2)
|
||||||
|
self.label_11 = QtWidgets.QLabel(self.widget_1)
|
||||||
|
self.label_11.setObjectName("label_11")
|
||||||
|
self.formLayout_8.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.label_11)
|
||||||
|
self.right3 = QtWidgets.QPushButton(self.widget_1)
|
||||||
|
self.right3.setObjectName("right3")
|
||||||
|
self.formLayout_8.setWidget(8, QtWidgets.QFormLayout.FieldRole, self.right3)
|
||||||
|
self.verticalLayout.addWidget(self.widget_1)
|
||||||
|
self.widget_2 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||||
|
self.widget_2.setObjectName("widget_2")
|
||||||
|
self.formLayout_9 = QtWidgets.QFormLayout(self.widget_2)
|
||||||
|
self.formLayout_9.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.formLayout_9.setObjectName("formLayout_9")
|
||||||
|
self.titleLabel3 = QtWidgets.QLabel(self.widget_2)
|
||||||
|
self.titleLabel3.setObjectName("titleLabel3")
|
||||||
|
self.formLayout_9.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.titleLabel3)
|
||||||
|
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||||
|
self.label_13 = QtWidgets.QLabel(self.widget_2)
|
||||||
|
self.label_13.setObjectName("label_13")
|
||||||
|
self.horizontalLayout_2.addWidget(self.label_13)
|
||||||
|
self.comboBox = QtWidgets.QComboBox(self.widget_2)
|
||||||
|
self.comboBox.setObjectName("comboBox")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.horizontalLayout_2.addWidget(self.comboBox)
|
||||||
|
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
|
||||||
|
QtWidgets.QSizePolicy.Minimum)
|
||||||
|
self.horizontalLayout_2.addItem(spacerItem)
|
||||||
|
self.formLayout_9.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_2)
|
||||||
|
self.checkBox_30 = QtWidgets.QCheckBox(self.widget_2)
|
||||||
|
self.checkBox_30.setObjectName("checkBox_30")
|
||||||
|
self.formLayout_9.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.checkBox_30)
|
||||||
|
self.right4 = QtWidgets.QLabel(self.widget_2)
|
||||||
|
self.right4.setObjectName("right4")
|
||||||
|
self.formLayout_9.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.right4)
|
||||||
|
self.checkBox_31 = QtWidgets.QCheckBox(self.widget_2)
|
||||||
|
self.checkBox_31.setObjectName("checkBox_31")
|
||||||
|
self.formLayout_9.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.checkBox_31)
|
||||||
|
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||||
|
self.pushButton_5 = QtWidgets.QPushButton(self.widget_2)
|
||||||
|
self.pushButton_5.setObjectName("pushButton_5")
|
||||||
|
self.horizontalLayout_3.addWidget(self.pushButton_5)
|
||||||
|
self.pushButton_4 = QtWidgets.QPushButton(self.widget_2)
|
||||||
|
self.pushButton_4.setObjectName("pushButton_4")
|
||||||
|
self.horizontalLayout_3.addWidget(self.pushButton_4)
|
||||||
|
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
|
||||||
|
QtWidgets.QSizePolicy.Minimum)
|
||||||
|
self.horizontalLayout_3.addItem(spacerItem1)
|
||||||
|
self.formLayout_9.setLayout(4, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_3)
|
||||||
|
self.verticalLayout.addWidget(self.widget_2)
|
||||||
|
self.widget_3 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||||
|
self.widget_3.setObjectName("widget_3")
|
||||||
|
self.formLayout_2 = QtWidgets.QFormLayout(self.widget_3)
|
||||||
|
self.formLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.formLayout_2.setObjectName("formLayout_2")
|
||||||
|
self.titleLabel4 = QtWidgets.QLabel(self.widget_3)
|
||||||
|
self.titleLabel4.setObjectName("titleLabel4")
|
||||||
|
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.titleLabel4)
|
||||||
|
self.CheckBox_2 = QtWidgets.QCheckBox(self.widget_3)
|
||||||
|
self.CheckBox_2.setChecked(True)
|
||||||
|
self.CheckBox_2.setObjectName("CheckBox_2")
|
||||||
|
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.CheckBox_2)
|
||||||
|
self.checkBox_7 = QtWidgets.QCheckBox(self.widget_3)
|
||||||
|
self.checkBox_7.setObjectName("checkBox_7")
|
||||||
|
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.checkBox_7)
|
||||||
|
self.checkBox_8 = QtWidgets.QCheckBox(self.widget_3)
|
||||||
|
self.checkBox_8.setObjectName("checkBox_8")
|
||||||
|
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.checkBox_8)
|
||||||
|
self.checkBox_9 = QtWidgets.QCheckBox(self.widget_3)
|
||||||
|
self.checkBox_9.setChecked(True)
|
||||||
|
self.checkBox_9.setObjectName("checkBox_9")
|
||||||
|
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.checkBox_9)
|
||||||
|
self.checkBox_10 = QtWidgets.QCheckBox(self.widget_3)
|
||||||
|
self.checkBox_10.setChecked(True)
|
||||||
|
self.checkBox_10.setObjectName("checkBox_10")
|
||||||
|
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.checkBox_10)
|
||||||
|
self.checkBox_11 = QtWidgets.QCheckBox(self.widget_3)
|
||||||
|
self.checkBox_11.setChecked(True)
|
||||||
|
self.checkBox_11.setObjectName("checkBox_11")
|
||||||
|
self.formLayout_2.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.checkBox_11)
|
||||||
|
self.checkBox_12 = QtWidgets.QCheckBox(self.widget_3)
|
||||||
|
self.checkBox_12.setChecked(True)
|
||||||
|
self.checkBox_12.setObjectName("checkBox_12")
|
||||||
|
self.formLayout_2.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.checkBox_12)
|
||||||
|
self.checkBox_13 = QtWidgets.QCheckBox(self.widget_3)
|
||||||
|
self.checkBox_13.setChecked(True)
|
||||||
|
self.checkBox_13.setObjectName("checkBox_13")
|
||||||
|
self.formLayout_2.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.checkBox_13)
|
||||||
|
self.checkBox_14 = QtWidgets.QCheckBox(self.widget_3)
|
||||||
|
self.checkBox_14.setChecked(True)
|
||||||
|
self.checkBox_14.setObjectName("checkBox_14")
|
||||||
|
self.formLayout_2.setWidget(8, QtWidgets.QFormLayout.FieldRole, self.checkBox_14)
|
||||||
|
self.checkBox_15 = QtWidgets.QCheckBox(self.widget_3)
|
||||||
|
self.checkBox_15.setChecked(True)
|
||||||
|
self.checkBox_15.setObjectName("checkBox_15")
|
||||||
|
self.formLayout_2.setWidget(9, QtWidgets.QFormLayout.FieldRole, self.checkBox_15)
|
||||||
|
self.verticalLayout.addWidget(self.widget_3)
|
||||||
|
self.widget_4 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||||
|
self.widget_4.setObjectName("widget_4")
|
||||||
|
self.formLayout_3 = QtWidgets.QFormLayout(self.widget_4)
|
||||||
|
self.formLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.formLayout_3.setObjectName("formLayout_3")
|
||||||
|
self.titleLabel5 = QtWidgets.QLabel(self.widget_4)
|
||||||
|
self.titleLabel5.setObjectName("titleLabel5")
|
||||||
|
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.titleLabel5)
|
||||||
|
self.checkBox_16 = QtWidgets.QCheckBox(self.widget_4)
|
||||||
|
self.checkBox_16.setChecked(True)
|
||||||
|
self.checkBox_16.setObjectName("checkBox_16")
|
||||||
|
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.checkBox_16)
|
||||||
|
self.checkBox_17 = QtWidgets.QCheckBox(self.widget_4)
|
||||||
|
self.checkBox_17.setChecked(True)
|
||||||
|
self.checkBox_17.setObjectName("checkBox_17")
|
||||||
|
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.checkBox_17)
|
||||||
|
self.checkBox_18 = QtWidgets.QCheckBox(self.widget_4)
|
||||||
|
self.checkBox_18.setChecked(True)
|
||||||
|
self.checkBox_18.setObjectName("checkBox_18")
|
||||||
|
self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.checkBox_18)
|
||||||
|
self.checkBox_19 = QtWidgets.QCheckBox(self.widget_4)
|
||||||
|
self.checkBox_19.setChecked(True)
|
||||||
|
self.checkBox_19.setObjectName("checkBox_19")
|
||||||
|
self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.checkBox_19)
|
||||||
|
self.verticalLayout.addWidget(self.widget_4)
|
||||||
|
self.widget_5 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||||
|
self.widget_5.setObjectName("widget_5")
|
||||||
|
self.formLayout_4 = QtWidgets.QFormLayout(self.widget_5)
|
||||||
|
self.formLayout_4.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.formLayout_4.setObjectName("formLayout_4")
|
||||||
|
self.titleLabel6 = QtWidgets.QLabel(self.widget_5)
|
||||||
|
self.titleLabel6.setObjectName("titleLabel6")
|
||||||
|
self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.titleLabel6)
|
||||||
|
self.checkBox_20 = QtWidgets.QCheckBox(self.widget_5)
|
||||||
|
self.checkBox_20.setObjectName("checkBox_20")
|
||||||
|
self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.checkBox_20)
|
||||||
|
self.checkBox_21 = QtWidgets.QCheckBox(self.widget_5)
|
||||||
|
self.checkBox_21.setObjectName("checkBox_21")
|
||||||
|
self.formLayout_4.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.checkBox_21)
|
||||||
|
self.checkBox_22 = QtWidgets.QCheckBox(self.widget_5)
|
||||||
|
self.checkBox_22.setObjectName("checkBox_22")
|
||||||
|
self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.checkBox_22)
|
||||||
|
self.checkBox_23 = QtWidgets.QCheckBox(self.widget_5)
|
||||||
|
self.checkBox_23.setObjectName("checkBox_23")
|
||||||
|
self.formLayout_4.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.checkBox_23)
|
||||||
|
self.checkBox_24 = QtWidgets.QCheckBox(self.widget_5)
|
||||||
|
self.checkBox_24.setObjectName("checkBox_24")
|
||||||
|
self.formLayout_4.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.checkBox_24)
|
||||||
|
self.right5 = QtWidgets.QLabel(self.widget_5)
|
||||||
|
self.right5.setObjectName("right5")
|
||||||
|
self.formLayout_4.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.right5)
|
||||||
|
self.label_3 = QtWidgets.QLabel(self.widget_5)
|
||||||
|
self.label_3.setObjectName("label_3")
|
||||||
|
self.formLayout_4.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.label_3)
|
||||||
|
self.label_4 = QtWidgets.QLabel(self.widget_5)
|
||||||
|
self.label_4.setObjectName("label_4")
|
||||||
|
self.formLayout_4.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.label_4)
|
||||||
|
self.radioButton = QtWidgets.QRadioButton(self.widget_5)
|
||||||
|
self.radioButton.setObjectName("radioButton")
|
||||||
|
self.formLayout_4.setWidget(8, QtWidgets.QFormLayout.FieldRole, self.radioButton)
|
||||||
|
self.radioButton_2 = QtWidgets.QRadioButton(self.widget_5)
|
||||||
|
self.radioButton_2.setObjectName("radioButton_2")
|
||||||
|
self.formLayout_4.setWidget(9, QtWidgets.QFormLayout.FieldRole, self.radioButton_2)
|
||||||
|
self.radioButton_3 = QtWidgets.QRadioButton(self.widget_5)
|
||||||
|
self.radioButton_3.setChecked(True)
|
||||||
|
self.radioButton_3.setObjectName("radioButton_3")
|
||||||
|
self.formLayout_4.setWidget(10, QtWidgets.QFormLayout.FieldRole, self.radioButton_3)
|
||||||
|
self.formLayout_5 = QtWidgets.QFormLayout()
|
||||||
|
self.formLayout_5.setObjectName("formLayout_5")
|
||||||
|
self.listWidgetUser = QtWidgets.QListWidget(self.widget_5)
|
||||||
|
self.listWidgetUser.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||||
|
self.listWidgetUser.setObjectName("listWidgetUser")
|
||||||
|
self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.listWidgetUser)
|
||||||
|
self.pushButton = QtWidgets.QPushButton(self.widget_5)
|
||||||
|
self.pushButton.setObjectName("pushButton")
|
||||||
|
self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.pushButton)
|
||||||
|
self.formLayout_4.setLayout(11, QtWidgets.QFormLayout.FieldRole, self.formLayout_5)
|
||||||
|
self.verticalLayout.addWidget(self.widget_5)
|
||||||
|
self.widget_6 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||||
|
self.widget_6.setObjectName("widget_6")
|
||||||
|
self.formLayout_6 = QtWidgets.QFormLayout(self.widget_6)
|
||||||
|
self.formLayout_6.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.formLayout_6.setObjectName("formLayout_6")
|
||||||
|
self.titleLabel7 = QtWidgets.QLabel(self.widget_6)
|
||||||
|
self.titleLabel7.setObjectName("titleLabel7")
|
||||||
|
self.formLayout_6.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.titleLabel7)
|
||||||
|
self.label_6 = QtWidgets.QLabel(self.widget_6)
|
||||||
|
self.label_6.setObjectName("label_6")
|
||||||
|
self.formLayout_6.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.label_6)
|
||||||
|
self.pushButton_2 = QtWidgets.QPushButton(self.widget_6)
|
||||||
|
self.pushButton_2.setObjectName("pushButton_2")
|
||||||
|
self.formLayout_6.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.pushButton_2)
|
||||||
|
self.verticalLayout.addWidget(self.widget_6)
|
||||||
|
self.widget_7 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||||
|
self.widget_7.setObjectName("widget_7")
|
||||||
|
self.formLayout_7 = QtWidgets.QFormLayout(self.widget_7)
|
||||||
|
self.formLayout_7.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.formLayout_7.setObjectName("formLayout_7")
|
||||||
|
self.titleLabel8 = QtWidgets.QLabel(self.widget_7)
|
||||||
|
self.titleLabel8.setObjectName("titleLabel8")
|
||||||
|
self.formLayout_7.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.titleLabel8)
|
||||||
|
self.checkBox_25 = QtWidgets.QCheckBox(self.widget_7)
|
||||||
|
self.checkBox_25.setObjectName("checkBox_25")
|
||||||
|
self.formLayout_7.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.checkBox_25)
|
||||||
|
self.right6 = QtWidgets.QLabel(self.widget_7)
|
||||||
|
self.right6.setObjectName("right6")
|
||||||
|
self.formLayout_7.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.right6)
|
||||||
|
self.verticalLayout.addWidget(self.widget_7)
|
||||||
|
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
|
||||||
|
self.horizontalLayout.addWidget(self.scrollArea)
|
||||||
|
|
||||||
|
self.retranslateUi(Setting)
|
||||||
|
self.listWidget.setCurrentRow(0)
|
||||||
|
QtCore.QMetaObject.connectSlotsByName(Setting)
|
||||||
|
Setting.setTabOrder(self.listWidget, self.scrollArea)
|
||||||
|
Setting.setTabOrder(self.scrollArea, self.CheckBox)
|
||||||
|
Setting.setTabOrder(self.CheckBox, self.checkBox)
|
||||||
|
Setting.setTabOrder(self.checkBox, self.checkBox_2)
|
||||||
|
Setting.setTabOrder(self.checkBox_2, self.checkBox_3)
|
||||||
|
Setting.setTabOrder(self.checkBox_3, self.checkBox_4)
|
||||||
|
Setting.setTabOrder(self.checkBox_4, self.checkBox_5)
|
||||||
|
Setting.setTabOrder(self.checkBox_5, self.checkBox_6)
|
||||||
|
Setting.setTabOrder(self.checkBox_6, self.checkBox_26)
|
||||||
|
Setting.setTabOrder(self.checkBox_26, self.checkBox_27)
|
||||||
|
Setting.setTabOrder(self.checkBox_27, self.checkBox_28)
|
||||||
|
Setting.setTabOrder(self.checkBox_28, self.checkBox_29)
|
||||||
|
Setting.setTabOrder(self.checkBox_29, self.right1)
|
||||||
|
Setting.setTabOrder(self.right1, self.right2)
|
||||||
|
Setting.setTabOrder(self.right2, self.right3)
|
||||||
|
Setting.setTabOrder(self.right3, self.comboBox)
|
||||||
|
Setting.setTabOrder(self.comboBox, self.checkBox_30)
|
||||||
|
Setting.setTabOrder(self.checkBox_30, self.checkBox_31)
|
||||||
|
Setting.setTabOrder(self.checkBox_31, self.pushButton_5)
|
||||||
|
Setting.setTabOrder(self.pushButton_5, self.pushButton_4)
|
||||||
|
Setting.setTabOrder(self.pushButton_4, self.CheckBox_2)
|
||||||
|
Setting.setTabOrder(self.CheckBox_2, self.checkBox_7)
|
||||||
|
Setting.setTabOrder(self.checkBox_7, self.checkBox_8)
|
||||||
|
Setting.setTabOrder(self.checkBox_8, self.checkBox_9)
|
||||||
|
Setting.setTabOrder(self.checkBox_9, self.checkBox_10)
|
||||||
|
Setting.setTabOrder(self.checkBox_10, self.checkBox_11)
|
||||||
|
Setting.setTabOrder(self.checkBox_11, self.checkBox_12)
|
||||||
|
Setting.setTabOrder(self.checkBox_12, self.checkBox_13)
|
||||||
|
Setting.setTabOrder(self.checkBox_13, self.checkBox_14)
|
||||||
|
Setting.setTabOrder(self.checkBox_14, self.checkBox_15)
|
||||||
|
Setting.setTabOrder(self.checkBox_15, self.checkBox_16)
|
||||||
|
Setting.setTabOrder(self.checkBox_16, self.checkBox_17)
|
||||||
|
Setting.setTabOrder(self.checkBox_17, self.checkBox_18)
|
||||||
|
Setting.setTabOrder(self.checkBox_18, self.checkBox_19)
|
||||||
|
Setting.setTabOrder(self.checkBox_19, self.checkBox_20)
|
||||||
|
Setting.setTabOrder(self.checkBox_20, self.checkBox_21)
|
||||||
|
Setting.setTabOrder(self.checkBox_21, self.checkBox_22)
|
||||||
|
Setting.setTabOrder(self.checkBox_22, self.checkBox_23)
|
||||||
|
Setting.setTabOrder(self.checkBox_23, self.checkBox_24)
|
||||||
|
Setting.setTabOrder(self.checkBox_24, self.radioButton)
|
||||||
|
Setting.setTabOrder(self.radioButton, self.radioButton_2)
|
||||||
|
Setting.setTabOrder(self.radioButton_2, self.radioButton_3)
|
||||||
|
Setting.setTabOrder(self.radioButton_3, self.listWidgetUser)
|
||||||
|
Setting.setTabOrder(self.listWidgetUser, self.pushButton)
|
||||||
|
Setting.setTabOrder(self.pushButton, self.pushButton_2)
|
||||||
|
Setting.setTabOrder(self.pushButton_2, self.checkBox_25)
|
||||||
|
|
||||||
|
def retranslateUi(self, Setting):
|
||||||
|
_translate = QtCore.QCoreApplication.translate
|
||||||
|
Setting.setWindowTitle(_translate("Setting", "仿QQ设置面板"))
|
||||||
|
__sortingEnabled = self.listWidget.isSortingEnabled()
|
||||||
|
self.listWidget.setSortingEnabled(False)
|
||||||
|
item = self.listWidget.item(0)
|
||||||
|
item.setText(_translate("Setting", "登录"))
|
||||||
|
item = self.listWidget.item(1)
|
||||||
|
item.setText(_translate("Setting", "主面板"))
|
||||||
|
item = self.listWidget.item(2)
|
||||||
|
item.setText(_translate("Setting", "状态"))
|
||||||
|
item = self.listWidget.item(3)
|
||||||
|
item.setText(_translate("Setting", "会话窗口"))
|
||||||
|
item = self.listWidget.item(4)
|
||||||
|
item.setText(_translate("Setting", "信息展示"))
|
||||||
|
item = self.listWidget.item(5)
|
||||||
|
item.setText(_translate("Setting", "提醒"))
|
||||||
|
item = self.listWidget.item(6)
|
||||||
|
item.setText(_translate("Setting", "热键"))
|
||||||
|
item = self.listWidget.item(7)
|
||||||
|
item.setText(_translate("Setting", "显示"))
|
||||||
|
item = self.listWidget.item(8)
|
||||||
|
item.setText(_translate("Setting", "声音"))
|
||||||
|
item = self.listWidget.item(9)
|
||||||
|
item.setText(_translate("Setting", "软件更新"))
|
||||||
|
item = self.listWidget.item(10)
|
||||||
|
item.setText(_translate("Setting", "文件管理"))
|
||||||
|
item = self.listWidget.item(11)
|
||||||
|
item.setText(_translate("Setting", "文件共享"))
|
||||||
|
item = self.listWidget.item(12)
|
||||||
|
item.setText(_translate("Setting", "音视频通话"))
|
||||||
|
self.listWidget.setSortingEnabled(__sortingEnabled)
|
||||||
|
self.titleLabel1.setText(_translate("Setting", "登录:"))
|
||||||
|
self.CheckBox.setText(_translate("Setting", "开机时自动启动QQ"))
|
||||||
|
self.checkBox.setText(_translate("Setting", "启动QQ时为我自动登录"))
|
||||||
|
self.checkBox_2.setText(_translate("Setting", "总是打开登录提示"))
|
||||||
|
self.checkBox_3.setText(_translate("Setting", "离线自动启动QQ手机版(仅支持Android)"))
|
||||||
|
self.checkBox_4.setText(_translate("Setting", "登录后自动运行QQ宠物"))
|
||||||
|
self.checkBox_5.setText(_translate("Setting", "订阅“腾讯视频”,获取量身定制视频资讯"))
|
||||||
|
self.checkBox_6.setText(_translate("Setting", "订阅“每日精选”,了解最新商品资讯"))
|
||||||
|
self.titleLabel2.setText(_translate("Setting", "主面板:"))
|
||||||
|
self.checkBox_26.setText(_translate("Setting", "始终保持在其他窗口前端"))
|
||||||
|
self.checkBox_27.setText(_translate("Setting", "停靠在桌面边缘时自动隐藏"))
|
||||||
|
self.checkBox_28.setText(_translate("Setting", "在任务栏通知区域显示QQ图标"))
|
||||||
|
self.checkBox_29.setText(_translate("Setting", "显示天气"))
|
||||||
|
self.label_10.setText(_translate("Setting", "关闭主面板时:"))
|
||||||
|
self.right1.setText(_translate("Setting", "隐藏到任务栏通知区域,不退出程序"))
|
||||||
|
self.right2.setText(_translate("Setting", "退出程序"))
|
||||||
|
self.label_11.setText(_translate("Setting", "您可以自由定制适合您的面板和功能,使用QQ更有效率"))
|
||||||
|
self.right3.setText(_translate("Setting", "界面管理器"))
|
||||||
|
self.titleLabel3.setText(_translate("Setting", "状态:"))
|
||||||
|
self.label_13.setText(_translate("Setting", "登陆后状态为:"))
|
||||||
|
self.comboBox.setItemText(0, _translate("Setting", "我在线上"))
|
||||||
|
self.comboBox.setItemText(1, _translate("Setting", "Q我吧"))
|
||||||
|
self.comboBox.setItemText(2, _translate("Setting", "离开"))
|
||||||
|
self.comboBox.setItemText(3, _translate("Setting", "忙碌"))
|
||||||
|
self.comboBox.setItemText(4, _translate("Setting", "请勿打扰"))
|
||||||
|
self.comboBox.setItemText(5, _translate("Setting", "隐身"))
|
||||||
|
self.checkBox_30.setText(_translate("Setting", "运行全屏程序时切换至“忙碌“状态””"))
|
||||||
|
self.right4.setText(_translate("Setting", "仅在“Q我吧”和“我在线上”状态下生效"))
|
||||||
|
self.checkBox_31.setText(_translate("Setting", "离开、忙碌、请勿打扰时自动回复(100字以内)"))
|
||||||
|
self.pushButton_5.setText(_translate("Setting", "自动回复设置"))
|
||||||
|
self.pushButton_4.setText(_translate("Setting", "快捷回复设置"))
|
||||||
|
self.titleLabel4.setText(_translate("Setting", "会话窗口:"))
|
||||||
|
self.CheckBox_2.setText(_translate("Setting", "使用多彩气泡聊天"))
|
||||||
|
self.checkBox_7.setText(_translate("Setting", "不显示广告(会员设置项)"))
|
||||||
|
self.checkBox_8.setText(_translate("Setting", "允许来消息时自动弹出窗口"))
|
||||||
|
self.checkBox_9.setText(_translate("Setting", "默认使用腾讯视频播放视频文件"))
|
||||||
|
self.checkBox_10.setText(_translate("Setting", "允许自动播放魔法表情和超级表情"))
|
||||||
|
self.checkBox_11.setText(_translate("Setting", "允许使用QQ秀聊天随动表情"))
|
||||||
|
self.checkBox_12.setText(_translate("Setting", "总是显示好友聊天窗口侧边栏"))
|
||||||
|
self.checkBox_13.setText(_translate("Setting", "允许接收窗口抖动"))
|
||||||
|
self.checkBox_14.setText(_translate("Setting", "显示热词搜索提示"))
|
||||||
|
self.checkBox_15.setText(_translate("Setting", "显示历史消息记录"))
|
||||||
|
self.titleLabel5.setText(_translate("Setting", "信息展示:"))
|
||||||
|
self.checkBox_16.setText(_translate("Setting", "在资料卡和迷你信息卡上显示等级图标"))
|
||||||
|
self.checkBox_17.setText(_translate("Setting", "在资料卡和迷你卡上显示更新搜索"))
|
||||||
|
self.checkBox_18.setText(_translate("Setting", "在聊天窗口内展示好友的更新摘要"))
|
||||||
|
self.checkBox_19.setText(_translate("Setting", "在聊天窗口内展示好友互动标识"))
|
||||||
|
self.titleLabel6.setText(_translate("Setting", "提醒:"))
|
||||||
|
self.checkBox_20.setText(_translate("Setting", "会话消息提醒"))
|
||||||
|
self.checkBox_21.setText(_translate("Setting", "新邮件提醒"))
|
||||||
|
self.checkBox_22.setText(_translate("Setting", "启用QQ看点消息"))
|
||||||
|
self.checkBox_23.setText(_translate("Setting", "启用一声问候消息"))
|
||||||
|
self.checkBox_24.setText(_translate("Setting", "启用设备连接提醒"))
|
||||||
|
self.right5.setText(_translate("Setting", "当插入安卓设备时,提示安装或者更新QQ手机版"))
|
||||||
|
self.label_3.setText(_translate("Setting",
|
||||||
|
"<html><head/><body><p>您可以设置是否在屏幕右下角收到来自QQ空间的通知,<a href=\"#\"><span style=\" text-decoration: none; color:#00aaff;\">进入设置</span></a>。</p></body></html>"))
|
||||||
|
self.label_4.setText(_translate("Setting", "好友上线提醒"))
|
||||||
|
self.radioButton.setText(_translate("Setting", "关闭好友上线提醒"))
|
||||||
|
self.radioButton_2.setText(_translate("Setting", "全部好友上线提醒"))
|
||||||
|
self.radioButton_3.setText(_translate("Setting", "以下好友上线提醒"))
|
||||||
|
self.pushButton.setText(_translate("Setting", "添加"))
|
||||||
|
self.titleLabel7.setText(_translate("Setting", "热键:"))
|
||||||
|
self.label_6.setText(_translate("Setting", "您可以通过点击选择要更改的热键"))
|
||||||
|
self.pushButton_2.setText(_translate("Setting", "设置热键"))
|
||||||
|
self.titleLabel8.setText(_translate("Setting", "显示:"))
|
||||||
|
self.checkBox_25.setText(_translate("Setting", "开启QQ适配屏幕DPI"))
|
||||||
|
self.right6.setText(_translate("Setting", "关闭选项后QQ将保持默认大小,设置后需要重新登录才能生效"))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import sys
|
||||||
|
|
||||||
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
Setting = QtWidgets.QWidget()
|
||||||
|
ui = Ui_Setting()
|
||||||
|
ui.setupUi(Setting)
|
||||||
|
Setting.show()
|
||||||
|
sys.exit(app.exec_())
|
63
test/MenuAnimation.py
Normal file
63
test/MenuAnimation.py
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
Created on 2018年8月22日
|
||||||
|
@author: Irony
|
||||||
|
@site: https://pyqt.site , https://github.com/PyQt5
|
||||||
|
@email: 892768447@qq.com
|
||||||
|
@file: MenuAnimation
|
||||||
|
@description:
|
||||||
|
"""
|
||||||
|
|
||||||
|
from PyQt5.QtCore import QPropertyAnimation, QEasingCurve, QRect
|
||||||
|
from PyQt5.QtWidgets import QWidget, QMenu, QApplication
|
||||||
|
|
||||||
|
|
||||||
|
class Window(QWidget):
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(Window, self).__init__(*args, **kwargs)
|
||||||
|
self.resize(800, 600)
|
||||||
|
self.initMenu()
|
||||||
|
self.initAnimation()
|
||||||
|
|
||||||
|
def contextMenuEvent(self, event):
|
||||||
|
pos = event.globalPos()
|
||||||
|
size = self._contextMenu.sizeHint()
|
||||||
|
x, y, w, h = pos.x(), pos.y(), size.width(), size.height()
|
||||||
|
self._animation.stop()
|
||||||
|
self._animation.setStartValue(QRect(x, y, 0, 0))
|
||||||
|
self._animation.setEndValue(QRect(x, y, w, h))
|
||||||
|
self._animation.start()
|
||||||
|
self._contextMenu.exec_(event.globalPos())
|
||||||
|
|
||||||
|
def hello(self):
|
||||||
|
QApplication.instance().aboutQt()
|
||||||
|
|
||||||
|
def initAnimation(self):
|
||||||
|
# 按钮动画
|
||||||
|
self._animation = QPropertyAnimation(
|
||||||
|
self._contextMenu, b'geometry', self,
|
||||||
|
easingCurve=QEasingCurve.Linear, duration=300)
|
||||||
|
# easingCurve 修改该变量可以实现不同的效果
|
||||||
|
|
||||||
|
def initMenu(self):
|
||||||
|
self._contextMenu = QMenu(self)
|
||||||
|
self._contextMenu.addAction('菜单1', self.hello)
|
||||||
|
self._contextMenu.addAction('菜单2', self.hello)
|
||||||
|
self._contextMenu.addAction('菜单3', self.hello)
|
||||||
|
self._contextMenu.addAction('菜单4', self.hello)
|
||||||
|
self._contextMenu.addAction('菜单5', self.hello)
|
||||||
|
self._contextMenu.addAction('菜单6', self.hello)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import sys
|
||||||
|
import cgitb
|
||||||
|
|
||||||
|
cgitb.enable(format='text')
|
||||||
|
app = QApplication(sys.argv)
|
||||||
|
w = Window()
|
||||||
|
w.show()
|
||||||
|
sys.exit(app.exec_())
|
66
test/QQSettingPanel.py
Normal file
66
test/QQSettingPanel.py
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
Created on 2018年3月28日
|
||||||
|
@author: Irony
|
||||||
|
@site: https://pyqt.site , https://github.com/PyQt5
|
||||||
|
@email: 892768447@qq.com
|
||||||
|
@file: QQSettingPanel
|
||||||
|
@description:
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
from PyQt5.QtWidgets import QApplication, QWidget
|
||||||
|
except ImportError:
|
||||||
|
from PySide2.QtWidgets import QApplication, QWidget
|
||||||
|
|
||||||
|
from Lib.SettingUi import Ui_Setting # @UnresolvedImport
|
||||||
|
|
||||||
|
|
||||||
|
class Window(QWidget, Ui_Setting):
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(Window, self).__init__(*args, **kwargs)
|
||||||
|
self.setupUi(self)
|
||||||
|
self.resize(700, 435)
|
||||||
|
self._blockSignals = False
|
||||||
|
|
||||||
|
# 绑定滚动条和左侧item事件
|
||||||
|
self.scrollArea.verticalScrollBar().valueChanged.connect(
|
||||||
|
self.onValueChanged)
|
||||||
|
self.listWidget.itemClicked.connect(self.onItemClicked)
|
||||||
|
|
||||||
|
def onValueChanged(self, value):
|
||||||
|
"""滚动条"""
|
||||||
|
if self._blockSignals:
|
||||||
|
# 防止item点击时改变滚动条会触发这里
|
||||||
|
return
|
||||||
|
for i in range(8): # 因为这里右侧有8个widget
|
||||||
|
widget = getattr(self, 'widget_%d' % i, None)
|
||||||
|
# widget不为空且在可视范围内
|
||||||
|
if widget and not widget.visibleRegion().isEmpty():
|
||||||
|
self.listWidget.setCurrentRow(i) # 设置item的选中
|
||||||
|
return
|
||||||
|
|
||||||
|
def onItemClicked(self, item):
|
||||||
|
"""左侧item"""
|
||||||
|
row = self.listWidget.row(item) # 获取点击的item的索引
|
||||||
|
# 由于右侧的widget是按照命名widget_0 widget_1这样比较规范的方法,可以通过getattr找到
|
||||||
|
widget = getattr(self, 'widget_%d' % row, None)
|
||||||
|
if not widget:
|
||||||
|
return
|
||||||
|
# 定位右侧位置并滚动
|
||||||
|
self._blockSignals = True
|
||||||
|
self.scrollArea.verticalScrollBar().setSliderPosition(widget.pos().y())
|
||||||
|
self._blockSignals = False
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import sys
|
||||||
|
|
||||||
|
app = QApplication(sys.argv)
|
||||||
|
app.setStyleSheet(open('Data/style.qss', 'rb').read().decode('utf-8'))
|
||||||
|
w = Window()
|
||||||
|
w.show()
|
||||||
|
sys.exit(app.exec_())
|
|
@ -31,6 +31,34 @@ def read_init_file():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def change_myday_important_conf(change_type, key, value):
|
||||||
|
value = str(value)
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config_path = return_work_dir()
|
||||||
|
todo_file = config_path + 'PyQtToDoList.conf'
|
||||||
|
if not os.path.exists(todo_file):
|
||||||
|
# print(True)
|
||||||
|
myday = {"Theme": "0"}
|
||||||
|
important = {"Theme": "0"}
|
||||||
|
config['MyDay'] = myday
|
||||||
|
config['Important'] = important
|
||||||
|
with open(todo_file, 'w') as f:
|
||||||
|
config.write(f)
|
||||||
|
|
||||||
|
config.read(todo_file)
|
||||||
|
config[change_type][key] = value
|
||||||
|
with open(todo_file, 'w') as f:
|
||||||
|
config.write(f)
|
||||||
|
|
||||||
|
|
||||||
|
def get_myday_important_conf(get_type, key):
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config_path = return_work_dir()
|
||||||
|
todo_file = config_path + 'PyQtToDoList.conf'
|
||||||
|
config.read(todo_file)
|
||||||
|
return config[get_type][key]
|
||||||
|
|
||||||
|
|
||||||
def get_todo_list():
|
def get_todo_list():
|
||||||
config_path = return_work_dir()
|
config_path = return_work_dir()
|
||||||
todo_path = config_path + 'ToDoList/'
|
todo_path = config_path + 'ToDoList/'
|
||||||
|
@ -148,6 +176,18 @@ def remove_todo_list(uid):
|
||||||
config_path = return_work_dir()
|
config_path = return_work_dir()
|
||||||
todo_path = config_path + 'ToDoList/'
|
todo_path = config_path + 'ToDoList/'
|
||||||
os.remove(todo_path + '{' + uid + '}.otl')
|
os.remove(todo_path + '{' + uid + '}.otl')
|
||||||
|
for root, dirs, files in os.walk(todo_path, topdown=False):
|
||||||
|
for name in files:
|
||||||
|
# print(os.path.join(root, name))
|
||||||
|
with open(os.path.join(root, name), 'r') as f:
|
||||||
|
# print(f.read())
|
||||||
|
json_file = json.load(f)
|
||||||
|
|
||||||
|
# print(json_file['itemType'])
|
||||||
|
if json_file['itemType'] == 'Todo' and json_file['todoListUid'] == uid:
|
||||||
|
# print(os.path.join(root, name))
|
||||||
|
os.remove(os.path.join(root, name))
|
||||||
|
|
||||||
|
|
||||||
# print(read_init_file())
|
# print(read_init_file())
|
||||||
# webdav_hostname = read_init_file()
|
# webdav_hostname = read_init_file()
|
||||||
|
@ -155,3 +195,5 @@ def remove_todo_list(uid):
|
||||||
# change_value('4f52f02b-4450-405a-9fd1-2005a03006e0', 'isMyDay', False)
|
# change_value('4f52f02b-4450-405a-9fd1-2005a03006e0', 'isMyDay', False)
|
||||||
# print(get_todo('3f1e033f-2051-4c04-b7f6-afd2eb1f54f4'))
|
# print(get_todo('3f1e033f-2051-4c04-b7f6-afd2eb1f54f4'))
|
||||||
# print(load_myday_important('Important'))
|
# print(load_myday_important('Important'))
|
||||||
|
# change_myday_important_conf('Important', 'theme', 2)
|
||||||
|
# print(get_myday_important_conf('Important','Theme'))
|
|
@ -1,12 +1,15 @@
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import time
|
||||||
|
|
||||||
from PyQt5.QtGui import *
|
from PyQt5.QtGui import *
|
||||||
from PyQt5.QtWidgets import *
|
from PyQt5.QtWidgets import *
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal
|
from PyQt5.QtCore import Qt, pyqtSignal
|
||||||
|
|
||||||
from utils.BasicUtils import load_myday_important, remove_todo_list, change_value, get_todo
|
from utils.BasicUtils import load_myday_important, remove_todo_list, change_value, get_todo, get_myday_important_conf, \
|
||||||
|
change_myday_important_conf
|
||||||
from view.AddToDoLabel import AddToDoAction
|
from view.AddToDoLabel import AddToDoAction
|
||||||
from view.ToDoItem import ToDoItem, Button
|
from view.ToDoItem import ToDoItem
|
||||||
|
|
||||||
|
|
||||||
class Important(QWidget):
|
class Important(QWidget):
|
||||||
|
@ -20,7 +23,9 @@ class Important(QWidget):
|
||||||
self.setObjectName('important')
|
self.setObjectName('important')
|
||||||
self.setAttribute(Qt.WA_StyledBackground)
|
self.setAttribute(Qt.WA_StyledBackground)
|
||||||
|
|
||||||
self.setStyleSheet('#important{background-image:url("../images/10.jpg");border-radius: 10px;}')
|
background = get_myday_important_conf('Important', 'Theme')
|
||||||
|
|
||||||
|
self.setStyleSheet('#important{background-image:url("../images/' + background + '.jpg");border-radius: 10px;}')
|
||||||
|
|
||||||
# 布局样式:最外面一个大的垂直布局,里面的最上面标题是一个水平布局,水平布局显示的是一个垂直布局和一个右边的选项,用来更换背景
|
# 布局样式:最外面一个大的垂直布局,里面的最上面标题是一个水平布局,水平布局显示的是一个垂直布局和一个右边的选项,用来更换背景
|
||||||
# 布局样式:继承QWidget,里面一个垂直布局,最上面一个QWidget用来设置头部布局
|
# 布局样式:继承QWidget,里面一个垂直布局,最上面一个QWidget用来设置头部布局
|
||||||
|
@ -93,6 +98,7 @@ class Important(QWidget):
|
||||||
|
|
||||||
refresh_label = QAction(self)
|
refresh_label = QAction(self)
|
||||||
refresh_label.setText('刷新')
|
refresh_label.setText('刷新')
|
||||||
|
refresh_label.setIcon(QIcon('../images/refresh.svg'))
|
||||||
# refresh_label.setDisabled(True)
|
# refresh_label.setDisabled(True)
|
||||||
self.button_menu.addAction(refresh_label)
|
self.button_menu.addAction(refresh_label)
|
||||||
self.button_menu.addSeparator()
|
self.button_menu.addSeparator()
|
||||||
|
@ -103,15 +109,7 @@ class Important(QWidget):
|
||||||
theme_label.setDisabled(True)
|
theme_label.setDisabled(True)
|
||||||
self.button_menu.addAction(theme_label)
|
self.button_menu.addAction(theme_label)
|
||||||
self.button_menu.addSeparator()
|
self.button_menu.addSeparator()
|
||||||
#
|
|
||||||
# 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)))
|
|
||||||
# self.button_menu.addAction(label_action)
|
|
||||||
|
|
||||||
# for i in range(11):
|
|
||||||
label_action1 = QAction(self)
|
label_action1 = QAction(self)
|
||||||
label_action1.setIcon(QIcon('../images/1.jpg'))
|
label_action1.setIcon(QIcon('../images/1.jpg'))
|
||||||
label_action1.setText('背景1')
|
label_action1.setText('背景1')
|
||||||
|
@ -146,7 +144,7 @@ class Important(QWidget):
|
||||||
self.todo_list.customContextMenuRequested.connect(self.todo_list_context)
|
self.todo_list.customContextMenuRequested.connect(self.todo_list_context)
|
||||||
# todolist = ToDoList()
|
# todolist = ToDoList()
|
||||||
|
|
||||||
self.initUI()
|
self.refresh_action()
|
||||||
|
|
||||||
def refresh_action(self):
|
def refresh_action(self):
|
||||||
# self.my_day_list[]
|
# self.my_day_list[]
|
||||||
|
@ -157,35 +155,19 @@ class Important(QWidget):
|
||||||
for my_day in my_day_list:
|
for my_day in my_day_list:
|
||||||
self.load_important(my_day[0], my_day[1])
|
self.load_important(my_day[0], my_day[1])
|
||||||
|
|
||||||
def initUI(self):
|
|
||||||
print('<ImportantView>')
|
|
||||||
# thread_action = ThreadAction()
|
|
||||||
# thread_action.change_value_action.connect()
|
|
||||||
|
|
||||||
self.my_day_list = load_myday_important('Important')
|
|
||||||
|
|
||||||
if self.my_day_list:
|
|
||||||
for my_day in self.my_day_list:
|
|
||||||
self.load_important(my_day[0], my_day[1])
|
|
||||||
|
|
||||||
def load_important(self, name, uid):
|
def load_important(self, name, uid):
|
||||||
todo_item = ToDoItem(name, uid)
|
todo_item = ToDoItem(name, uid)
|
||||||
|
todo_item.mark_icon.clicked.connect(lambda: self.mark_done(uid))
|
||||||
|
todo_item.important_button.clicked.connect(lambda: self.mark_important(uid))
|
||||||
|
|
||||||
self.todo_list.addItem(todo_item)
|
self.todo_list.addItem(todo_item)
|
||||||
self.todo_list.setItemWidget(todo_item, todo_item.widget)
|
self.todo_list.setItemWidget(todo_item, todo_item.widget)
|
||||||
|
|
||||||
# button_menu
|
# todo : 下面的方法实现点击更换主题的功能
|
||||||
# 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):
|
def menu_action(self, count):
|
||||||
# 点击按钮
|
# 点击按钮
|
||||||
count = str(count)
|
count = str(count)
|
||||||
|
change_myday_important_conf('Important', 'theme', count)
|
||||||
# self.menu_label = ChangeTheme()
|
# self.menu_label = ChangeTheme()
|
||||||
self.setStyleSheet('#important{background-image:url("../images/' + count + '.jpg");'
|
self.setStyleSheet('#important{background-image:url("../images/' + count + '.jpg");'
|
||||||
'background-position: center; border-radius: 10px;'
|
'background-position: center; border-radius: 10px;'
|
||||||
|
@ -255,13 +237,46 @@ class Important(QWidget):
|
||||||
|
|
||||||
# 重命名分组
|
# 重命名分组
|
||||||
def rename_item(self):
|
def rename_item(self):
|
||||||
curRow = self.todo_list.currentRow()
|
# curRow = self.todo_list.currentRow()
|
||||||
item = self.todo_list.item(curRow)
|
# item = self.todo_list.item(curRow)
|
||||||
item.setFlags(item.flags() | Qt.ItemIsEditable)
|
|
||||||
self.todo_list.editItem(item)
|
|
||||||
self.todo_list.itemChanged.connect(lambda: self.ChangeItem(item))
|
|
||||||
|
|
||||||
def ChangeItem(self, item):
|
self.dialog = QDialog()
|
||||||
print(item)
|
self.dialog.setWindowTitle('重命名')
|
||||||
|
self.dialog_layout = QVBoxLayout()
|
||||||
|
self.dialog.resize(300, 200)
|
||||||
|
self.dialog.setLayout(self.dialog_layout)
|
||||||
|
line_edit = QLineEdit()
|
||||||
|
# line_edit.setObjectName('rename_line')
|
||||||
|
line_edit.setStyleSheet('border: 1px solid;background:transparent;min-width:400px;')
|
||||||
|
line_edit.setPlaceholderText('请输入新的名字')
|
||||||
|
self.dialog_layout.addWidget(line_edit)
|
||||||
|
confirm_button = QPushButton('确认修改')
|
||||||
|
self.dialog_layout.addWidget(confirm_button)
|
||||||
|
confirm_button.setStyleSheet('background-color:#bcbcbc;border-radius:5px;')
|
||||||
|
confirm_button.clicked.connect(lambda: self.change_name(line_edit.text()))
|
||||||
|
|
||||||
print("test")
|
self.dialog.exec_()
|
||||||
|
|
||||||
|
# 重命名发送信号
|
||||||
|
# self.update_signal.emit()
|
||||||
|
|
||||||
|
def change_name(self, item_name):
|
||||||
|
print(item_name)
|
||||||
|
my_day_list = load_myday_important('Important')
|
||||||
|
change_value(my_day_list[self.todo_list.currentRow()][1], 'title', item_name)
|
||||||
|
# 重命名发送信号
|
||||||
|
self.refresh_action()
|
||||||
|
self.update_signal.emit()
|
||||||
|
self.dialog.close()
|
||||||
|
|
||||||
|
def mark_done(self, uid):
|
||||||
|
print('mark done:', uid)
|
||||||
|
change_value(uid, 'done', True)
|
||||||
|
time.sleep(0.5)
|
||||||
|
self.refresh_action()
|
||||||
|
self.update_signal.emit()
|
||||||
|
|
||||||
|
def mark_important(self, uid):
|
||||||
|
print('mark important:', uid)
|
||||||
|
|
||||||
|
pass
|
||||||
|
|
|
@ -3,7 +3,7 @@ from PyQt5.QtGui import *
|
||||||
from PyQt5.QtWidgets import *
|
from PyQt5.QtWidgets import *
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal
|
from PyQt5.QtCore import Qt, pyqtSignal
|
||||||
|
|
||||||
from utils.BasicUtils import load_myday_important
|
from utils.BasicUtils import load_myday_important, remove_todo_list, change_value
|
||||||
from utils.CreateToDo import CreateToDo
|
from utils.CreateToDo import CreateToDo
|
||||||
from view.AddToDoLabel import AddToDoAction
|
from view.AddToDoLabel import AddToDoAction
|
||||||
from view.MyDayHeadLabel import HeadLabel
|
from view.MyDayHeadLabel import HeadLabel
|
||||||
|
@ -20,7 +20,7 @@ class Menu(QMenu):
|
||||||
|
|
||||||
|
|
||||||
class MyDay(QWidget):
|
class MyDay(QWidget):
|
||||||
transaction = pyqtSignal()
|
update_signal = pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super(MyDay, self).__init__()
|
super(MyDay, self).__init__()
|
||||||
|
@ -30,11 +30,6 @@ class MyDay(QWidget):
|
||||||
self.setAttribute(Qt.WA_StyledBackground)
|
self.setAttribute(Qt.WA_StyledBackground)
|
||||||
# 下面这一句有问题,需要修复修改主题的实现方法
|
# 下面这一句有问题,需要修复修改主题的实现方法
|
||||||
# self.setStyleSheet('#my_day{background-image:url("../images/2.jpg");')
|
# 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用来设置头部布局
|
||||||
|
@ -43,10 +38,6 @@ 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.setMaximumHeight(180)
|
|
||||||
|
|
||||||
head_widget.setAttribute(Qt.WA_StyledBackground)
|
head_widget.setAttribute(Qt.WA_StyledBackground)
|
||||||
self.todo_list = QListWidget()
|
self.todo_list = QListWidget()
|
||||||
|
@ -59,8 +50,6 @@ class MyDay(QWidget):
|
||||||
self.add_todo.setAlignment(Qt.AlignCenter)
|
self.add_todo.setAlignment(Qt.AlignCenter)
|
||||||
# self.add_todo.todo_name.connect(self.add_todo_action)
|
# self.add_todo.todo_name.connect(self.add_todo_action)
|
||||||
|
|
||||||
# head_widget.setPalette(palette)
|
|
||||||
|
|
||||||
head_widget.setLayout(head_layout)
|
head_widget.setLayout(head_layout)
|
||||||
head_layout.setAlignment(Qt.AlignCenter)
|
head_layout.setAlignment(Qt.AlignCenter)
|
||||||
# head_left_layout = QVBoxLayout()
|
# head_left_layout = QVBoxLayout()
|
||||||
|
@ -72,7 +61,7 @@ class MyDay(QWidget):
|
||||||
self.head_label = HeadLabel()
|
self.head_label = HeadLabel()
|
||||||
layout.addWidget(self.todo_list, 6, Qt.AlignCenter | Qt.AlignTop)
|
layout.addWidget(self.todo_list, 6, Qt.AlignCenter | Qt.AlignTop)
|
||||||
head_layout.addWidget(self.head_label, 8)
|
head_layout.addWidget(self.head_label, 8)
|
||||||
# todo : 修改布局
|
|
||||||
layout.addWidget(self.add_todo, 2, Qt.AlignHCenter)
|
layout.addWidget(self.add_todo, 2, Qt.AlignHCenter)
|
||||||
|
|
||||||
self.menu_image = QPushButton()
|
self.menu_image = QPushButton()
|
||||||
|
@ -102,15 +91,7 @@ class MyDay(QWidget):
|
||||||
theme_label.setDisabled(True)
|
theme_label.setDisabled(True)
|
||||||
self.button_menu.addAction(theme_label)
|
self.button_menu.addAction(theme_label)
|
||||||
self.button_menu.addSeparator()
|
self.button_menu.addSeparator()
|
||||||
#
|
# 背景设置
|
||||||
# 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)))
|
|
||||||
# self.button_menu.addAction(label_action)
|
|
||||||
|
|
||||||
# for i in range(11):
|
|
||||||
label_action1 = QAction(self)
|
label_action1 = QAction(self)
|
||||||
label_action1.setIcon(QIcon('../images/1.jpg'))
|
label_action1.setIcon(QIcon('../images/1.jpg'))
|
||||||
label_action1.setText('背景1')
|
label_action1.setText('背景1')
|
||||||
|
@ -141,29 +122,49 @@ class MyDay(QWidget):
|
||||||
label_action5.triggered.connect(lambda: self.menu_action(5))
|
label_action5.triggered.connect(lambda: self.menu_action(5))
|
||||||
self.button_menu.addAction(label_action5)
|
self.button_menu.addAction(label_action5)
|
||||||
|
|
||||||
my_day_list = load_myday_important('MyDay')
|
# my_day_list = load_myday_important('MyDay')
|
||||||
|
#
|
||||||
|
# if my_day_list:
|
||||||
|
# for my_day in my_day_list:
|
||||||
|
# self.load_myday(my_day[0], my_day[1])
|
||||||
|
self.refresh_action()
|
||||||
|
|
||||||
|
def refresh_action(self):
|
||||||
|
# self.my_day_list[]
|
||||||
|
self.todo_list.clear()
|
||||||
|
# print(self.my_day_list)
|
||||||
|
my_day_list = load_myday_important('MyDay')
|
||||||
if my_day_list:
|
if my_day_list:
|
||||||
for my_day in my_day_list:
|
for my_day in my_day_list:
|
||||||
self.load_myday(my_day[0], my_day[1])
|
self.load_myday(my_day[0], my_day[1])
|
||||||
|
|
||||||
|
# def initUI(self):
|
||||||
|
# print('<MyDayView>(initUI)')
|
||||||
|
# # thread_action = ThreadAction()
|
||||||
|
# # thread_action.change_value_action.connect()
|
||||||
|
#
|
||||||
|
# self.my_day_list = load_myday_important('Important')
|
||||||
|
#
|
||||||
|
# if self.my_day_list:
|
||||||
|
# for my_day in self.my_day_list:
|
||||||
|
# self.load_myday(my_day[0], my_day[1])
|
||||||
|
|
||||||
def load_myday(self, name, uid):
|
def load_myday(self, name, uid):
|
||||||
todo_item = ToDoItem(name, uid)
|
todo_item = ToDoItem(name, uid)
|
||||||
|
|
||||||
self.todo_list.addItem(todo_item)
|
self.todo_list.addItem(todo_item)
|
||||||
self.todo_list.setItemWidget(todo_item, todo_item.widget)
|
self.todo_list.setItemWidget(todo_item, todo_item.widget)
|
||||||
|
|
||||||
pass
|
|
||||||
|
|
||||||
# todo : 下面的方法实现点击更换主题的功能
|
|
||||||
|
|
||||||
def menu_action(self, count):
|
def menu_action(self, count):
|
||||||
|
|
||||||
count = str(count)
|
count = str(count)
|
||||||
# 点击按钮
|
# 点击按钮
|
||||||
|
|
||||||
self.setStyleSheet('#my_day{background-image:url("../images/' + count + '.jpg");'
|
self.setStyleSheet('#my_day{background-image:url("../images/' + count + '.jpg");'
|
||||||
'background-position: center; border-radius: 10px;'
|
'background-position: center; border-radius: 10px;'
|
||||||
'}')
|
'}')
|
||||||
self.head_label.show()
|
# self.head_label.show()
|
||||||
|
|
||||||
print('<MyDayView> 选中:' + count)
|
print('<MyDayView> 选中:' + count)
|
||||||
|
|
||||||
|
@ -182,3 +183,69 @@ class MyDay(QWidget):
|
||||||
self.todo_list.setItemWidget(todo_item, todo_item.widget)
|
self.todo_list.setItemWidget(todo_item, todo_item.widget)
|
||||||
|
|
||||||
self.add_todo.line_edit.clear()
|
self.add_todo.line_edit.clear()
|
||||||
|
|
||||||
|
def todo_list_context(self, position):
|
||||||
|
# 设置右键菜单
|
||||||
|
pop_menu = QMenu(self)
|
||||||
|
pop_menu.setObjectName('lift_menu')
|
||||||
|
pop_menu.setAttribute(Qt.WA_TranslucentBackground)
|
||||||
|
# 无边框、去掉自带阴影
|
||||||
|
pop_menu.setWindowFlags(
|
||||||
|
pop_menu.windowFlags() | Qt.FramelessWindowHint | Qt.NoDropShadowWindowHint)
|
||||||
|
|
||||||
|
rename_action = QAction(u'重命名', self)
|
||||||
|
|
||||||
|
mark_myday = QAction(QIcon(QPixmap(os.getcwd() + '/../images/make_sun.svg')), u"取消设置为我的一天", self)
|
||||||
|
mark_important = QAction(QIcon(QPixmap(os.getcwd() + '/../images/star.svg')), u"设置为重要", self)
|
||||||
|
|
||||||
|
del_action = QAction("删除", self)
|
||||||
|
|
||||||
|
# 查看右键时是否在item上面,如果不在.就不显示删除和修改.
|
||||||
|
pop_menu.addAction(rename_action)
|
||||||
|
if self.todo_list.itemAt(position):
|
||||||
|
pop_menu.addAction(mark_myday)
|
||||||
|
pop_menu.addAction(mark_important)
|
||||||
|
pop_menu.addAction(del_action)
|
||||||
|
pop_menu.addAction(rename_action)
|
||||||
|
|
||||||
|
rename_action.triggered.connect(self.rename_item)
|
||||||
|
# copy_action.triggered.connect(self.create_item)
|
||||||
|
del_action.triggered.connect(self.delete_item)
|
||||||
|
mark_important.triggered.connect(self.make_important)
|
||||||
|
pop_menu.exec_(self.todo_list.mapToGlobal(position))
|
||||||
|
|
||||||
|
def make_important(self):
|
||||||
|
# print(self.todo_list.currentRow())
|
||||||
|
my_day_list = load_myday_important('Important')
|
||||||
|
# load_todo = get_todo(my_day_list[self.todo_list.currentRow()][1])
|
||||||
|
uid = my_day_list[self.todo_list.currentRow()][1]
|
||||||
|
self.todo_list.takeItem(self.todo_list.currentRow())
|
||||||
|
# print('<ToDoListView> uid:', uid)
|
||||||
|
change_value(uid, 'isImportant', True)
|
||||||
|
# 暂时不需要发送信号
|
||||||
|
self.update_signal.emit()
|
||||||
|
|
||||||
|
# 删除分组
|
||||||
|
def delete_item(self):
|
||||||
|
# print(self.load_list[self.system_listWidget.currentRow() - 2][1])
|
||||||
|
my_day_list = load_myday_important('Important')
|
||||||
|
# load_todo = get_todo(my_day_list[self.todo_list.currentRow()][1])
|
||||||
|
uid = my_day_list[self.todo_list.currentRow()][1]
|
||||||
|
remove_todo_list(uid)
|
||||||
|
# change_value(uid,'isImportant',False)
|
||||||
|
self.todo_list.takeItem(self.todo_list.currentRow())
|
||||||
|
self.update_signal.emit()
|
||||||
|
|
||||||
|
# 重命名分组
|
||||||
|
def rename_item(self):
|
||||||
|
curRow = self.todo_list.currentRow()
|
||||||
|
item = self.todo_list.item(curRow)
|
||||||
|
item.setFlags(item.flags() | Qt.ItemIsEditable)
|
||||||
|
self.todo_list.editItem(item)
|
||||||
|
self.todo_list.itemChanged.connect(lambda: self.ChangeItem(item))
|
||||||
|
|
||||||
|
def ChangeItem(self, item):
|
||||||
|
print(item)
|
||||||
|
|
||||||
|
print("test")
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ class MyListWidget(QListWidget):
|
||||||
# 双击可编辑
|
# 双击可编辑
|
||||||
self.edited_item = self.currentItem()
|
self.edited_item = self.currentItem()
|
||||||
self.close_flag = True
|
self.close_flag = True
|
||||||
self.doubleClicked.connect(self.item_double_clicked)
|
# self.doubleClicked.connect(self.item_double_clicked)
|
||||||
self.currentItemChanged.connect(self.close_edit)
|
self.currentItemChanged.connect(self.close_edit)
|
||||||
|
|
||||||
def keyPressEvent(self, e: QKeyEvent) -> None:
|
def keyPressEvent(self, e: QKeyEvent) -> None:
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import os
|
||||||
|
|
||||||
from PyQt5.QtWidgets import *
|
from PyQt5.QtWidgets import *
|
||||||
from PyQt5.QtGui import *
|
from PyQt5.QtGui import *
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal
|
from PyQt5.QtCore import Qt, pyqtSignal
|
||||||
|
@ -12,7 +14,7 @@ class SelfListWidgetItem(QListWidgetItem):
|
||||||
"""
|
"""
|
||||||
update_action = pyqtSignal()
|
update_action = pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, item_name, todo_count=0, uid=None, show_icon=None):
|
def __init__(self, item_name, todo_count=0, uid=None, show_icon=os.getcwd()+'/../images/icon/星宿.svg'):
|
||||||
super(SelfListWidgetItem, self).__init__()
|
super(SelfListWidgetItem, self).__init__()
|
||||||
layout = QHBoxLayout()
|
layout = QHBoxLayout()
|
||||||
# print(show_icon)
|
# print(show_icon)
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
|
||||||
from PyQt5 import QtGui
|
from PyQt5 import QtGui
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal
|
from PyQt5.QtCore import Qt, pyqtSignal
|
||||||
from PyQt5.QtGui import QPixmap, QIcon
|
from PyQt5.QtGui import QPixmap, QIcon
|
||||||
|
@ -7,32 +10,12 @@ from PyQt5.QtCore import Qt
|
||||||
from utils.BasicUtils import change_value
|
from utils.BasicUtils import change_value
|
||||||
|
|
||||||
|
|
||||||
class Button(QPushButton):
|
|
||||||
trans_signal = pyqtSignal()
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
super(Button, self).__init__()
|
|
||||||
|
|
||||||
def mouseReleaseEvent(self, e: QtGui.QMouseEvent) -> None:
|
|
||||||
self.trans_signal.emit()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# def mousePressEvent(self, QMouseEvent):
|
|
||||||
# print('haha')
|
|
||||||
|
|
||||||
# def clicked(self, checked: bool = ...):
|
|
||||||
# self.trans_signal.emit()
|
|
||||||
|
|
||||||
|
|
||||||
class ToDoItem(QListWidgetItem):
|
class ToDoItem(QListWidgetItem):
|
||||||
transaction = pyqtSignal()
|
|
||||||
"""
|
"""
|
||||||
:param todo_name : 新建的待办事项名称
|
:param todo_name : 新建的待办事项名称
|
||||||
:param uid : 待办事项的uid
|
:param uid : 待办事项的uid
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# todo : 设置点击事件信号传递
|
|
||||||
def __init__(self, todo_name, uid=None):
|
def __init__(self, todo_name, uid=None):
|
||||||
super(ToDoItem, self).__init__()
|
super(ToDoItem, self).__init__()
|
||||||
# print('<ToDoItem> 添加的新ToDo:' + todo_name)
|
# print('<ToDoItem> 添加的新ToDo:' + todo_name)
|
||||||
|
@ -60,13 +43,14 @@ class ToDoItem(QListWidgetItem):
|
||||||
layout.addWidget(self.important_button, 2)
|
layout.addWidget(self.important_button, 2)
|
||||||
|
|
||||||
self.mark_icon.clicked.connect(self.set_done)
|
self.mark_icon.clicked.connect(self.set_done)
|
||||||
print('<ToDoItem>', uid)
|
# print('<ToDoItem>', uid)
|
||||||
|
|
||||||
self.important_button.clicked.connect(lambda: self.set_important(uid))
|
self.important_button.clicked.connect(lambda: self.set_important(uid))
|
||||||
# self.mark_icon.trans_signal.connect(self.set_done)
|
# self.mark_icon.trans_signal.connect(self.set_done)
|
||||||
|
|
||||||
def set_done(self):
|
def set_done(self):
|
||||||
print('<ToDoItem>hello')
|
self.mark_icon.setIcon(QIcon(os.getcwd()+'/../images/finished.svg'))
|
||||||
|
# time.sleep(0.2)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def set_myday(self, uid):
|
def set_myday(self, uid):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import os
|
import os
|
||||||
from PyQt5.QtGui import *
|
from PyQt5.QtGui import *
|
||||||
from PyQt5.QtWidgets import *
|
from PyQt5.QtWidgets import *
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal
|
from PyQt5.QtCore import Qt, pyqtSignal, QPropertyAnimation, QRect, QEasingCurve
|
||||||
|
|
||||||
from utils.BasicUtils import get_todo, change_value, load_value, remove_todo_list
|
from utils.BasicUtils import get_todo, change_value, load_value, remove_todo_list
|
||||||
from utils.CreateToDo import CreateToDo
|
from utils.CreateToDo import CreateToDo
|
||||||
|
@ -9,15 +9,6 @@ from view.AddToDoLabel import AddToDoAction
|
||||||
from view.ToDoItem import ToDoItem
|
from view.ToDoItem import ToDoItem
|
||||||
|
|
||||||
|
|
||||||
class Menu(QMenu):
|
|
||||||
def __init__(self):
|
|
||||||
super(Menu, self).__init__()
|
|
||||||
self.index = None
|
|
||||||
|
|
||||||
def set_index(self, index):
|
|
||||||
self.index = index
|
|
||||||
|
|
||||||
|
|
||||||
class ToDoList(QWidget):
|
class ToDoList(QWidget):
|
||||||
"""
|
"""
|
||||||
:param list_name: 列表名,用于显示标题
|
:param list_name: 列表名,用于显示标题
|
||||||
|
@ -184,6 +175,8 @@ class ToDoList(QWidget):
|
||||||
|
|
||||||
def load_todo(self, name, uid):
|
def load_todo(self, name, uid):
|
||||||
todo_item = ToDoItem(name, uid)
|
todo_item = ToDoItem(name, uid)
|
||||||
|
todo_item.mark_icon.clicked.connect(lambda: self.mark_done(uid))
|
||||||
|
todo_item.important_button.clicked.connect(lambda: self.mark_important(uid))
|
||||||
# todo_item.mark_icon.trans_signal.connect(self.todo_list.clear())
|
# todo_item.mark_icon.trans_signal.connect(self.todo_list.clear())
|
||||||
|
|
||||||
self.todo_list.addItem(todo_item)
|
self.todo_list.addItem(todo_item)
|
||||||
|
@ -259,14 +252,23 @@ class ToDoList(QWidget):
|
||||||
self.update_signal.emit()
|
self.update_signal.emit()
|
||||||
|
|
||||||
# 重命名分组
|
# 重命名分组
|
||||||
|
# todo : 复制重要代码
|
||||||
def rename_item(self):
|
def rename_item(self):
|
||||||
curRow = self.todo_list.currentRow()
|
curRow = self.todo_list.currentRow()
|
||||||
item = self.todo_list.item(curRow)
|
item = self.todo_list.item(curRow)
|
||||||
item.setFlags(item.flags() | Qt.ItemIsEditable)
|
item.setFlags(item.flags() | Qt.ItemIsEditable)
|
||||||
self.todo_list.editItem(item)
|
self.todo_list.editItem(item)
|
||||||
self.todo_list.itemChanged.connect(lambda: self.ChangeItem(item))
|
self.todo_list.itemChanged.connect(lambda: self.ChangeItem(item))
|
||||||
|
self.update_signal.emit()
|
||||||
|
|
||||||
def ChangeItem(self, item):
|
def ChangeItem(self, item):
|
||||||
print(item)
|
print(item)
|
||||||
|
|
||||||
print("test")
|
print("test")
|
||||||
|
|
||||||
|
def mark_done(self, uid):
|
||||||
|
print('mark done:', uid)
|
||||||
|
|
||||||
|
|
||||||
|
def mark_important(self, uid):
|
||||||
|
pass
|
||||||
|
|
Loading…
Reference in a new issue