class WidgetAppendNewTask(QWidget): def __init__(self): super().__init__() self.setFixedSize(800, 600) self.move(500, 300) self.setWindowTitle('Добавление новой задачи') self.font1 = QFont() self.font1.setPointSize(16) self.lbl1 = QLabel(self) self.lbl1.move(50, 50) self.lbl1.resize(350, 50) self.lbl1.setFont(self.font1) self.lbl1.setText('Название задачи') self.line_name = QLineEdit(self) self.line_name.move(400, 50) self.line_name.resize(350, 50) self.line_name.setFont(self.font1) self.lbl2 = QLabel(self) self.lbl2.move(50, 125) self.lbl2.resize(350, 50) self.lbl2.setFont(self.font1) self.lbl2.setText('Подробнее') self.text_of_task = QPlainTextEdit(self) self.text_of_task.move(400, 125) self.text_of_task.resize(350, 150) self.text_of_task.setFont(self.font1) self.lbl3 = QLabel(self) self.lbl3.move(50, 300) self.lbl3.resize(350, 50) self.lbl3.setText('Укажите дату и время\n' 'начала выполнения задачи') self.lbl3.setFont(self.font1) self.start_check = QCheckBox(self) self.start_check.move(400, 300) self.start_check.resize(20, 50) self.start_check.setFont(self.font1) self.start_check.clicked.connect(self.start_check_triggered) self.dt_start = QDateTimeEdit(self) self.dt_start.move(430, 300) self.dt_start.resize(320, 50) self.dt_start.setFont(self.font1) self.dt_start.setDateTime(datetime.datetime.now()) self.dt_start.setDisabled(True) self.lbl4 = QLabel(self) self.lbl4.move(50, 400) self.lbl4.resize(350, 50) self.lbl4.setText('Установите приоритет задачи') self.lbl4.setFont(self.font1) self.prioritet = QComboBox(self) self.prioritet.move(400, 400) self.prioritet.resize(350, 50) self.prioritet.setFont(self.font1) self.prioritet.addItem('Приоритет в порядке очереди') self.prioritet.addItem('Средний приоритет') self.prioritet.addItem('Высокий приоритет') self.prioritet.addItem('Наивысший приоритет') self.btn_back = QPushButton(self) self.btn_back.move(0, 0) self.btn_back.resize(50, 25) self.btn_back.setFont(self.font1) self.btn_back.setText('<-') self.btn_back.clicked.connect(self.back_pushed) self.btn_ready = QPushButton(self) self.btn_ready.move(250, 500) self.btn_ready.resize(300, 50) self.btn_ready.setFont(self.font1) self.btn_ready.setText('Сохранить задачу') self.btn_ready.clicked.connect(self.ready_pushed) self.info_lbl = QLabel(self) self.info_lbl.move(150, 0) self.info_lbl.setFont(self.font1) self.info_lbl.setText('') self.info_lbl.setStyleSheet('color: red') def back_pushed(self): if self.line_name.text() == '': self.close() else: self.info_lbl.setText( 'Очистите поле "Название задачи" или сохраните задачу') self.info_lbl.resize(555, 25) def mousePressEvent(self, event): if event.button() == 8 and self.line_name.text() == '': self.close() else: self.info_lbl.setText( 'Очистите поле "Название задачи" или сохраните задачу') self.info_lbl.resize(555, 25) def start_check_triggered(self): if self.start_check.isChecked(): self.dt_start.setDisabled(False) else: self.dt_start.setDisabled(True) def ready_pushed(self): file = open('tasks.csv', encoding='UTF-8', mode='a', newline='') writer = csv.writer(file, delimiter=';', quoting=csv.QUOTE_MINIMAL) name = self.line_name.text() more = self.text_of_task.toPlainText() prioritet = self.prioritet.currentText() if self.start_check.isChecked(): start = self.dt_start.dateTime() else: start = 'None' dt = str(start.toPyDateTime()) dt = dt[:dt.index('.')] dt = dt[:-3] if prioritet == 'Приоритет в порядке очереди': prioritet = 1 elif prioritet == 'Средний приоритет': prioritet = 2 elif prioritet == 'Высокий приоритет': prioritet = 3 else: prioritet = 4 row = [ str(randint(10000, 99999)), name, more, dt, str(prioritet), 'NotResolved' ] writer.writerow(row) self.info_lbl.setText('Задача успешно сохранена') self.info_lbl.resize(555, 25) self.close()
class Upload(QWidget): def __init__(self): super(Upload, self).__init__() self.switch = True self.initUI() def initUI(self): #源文件选择按钮和选择编辑框 self.source_btn = QPushButton('源文件', self) self.source_btn.move(30, 30) self.source_btn.resize(80,30) self.source_btn.clicked.connect(self.select_source) self.source_le = QLineEdit(self) self.source_le.move(120, 30) self.source_le.resize(250,30) #抖音视频分类输入框和提示 self.catLabel = QLabel(self) self.catLabel.move(30, 75) self.catLabel.resize(100,30) self.catLabel.setText("抖音视频分类:") self.combo_from = QComboBox(self) self.cat_form = '体育' self.combo_from.addItems(['体育', '音乐', '搞笑', '影视', '娱乐', '舞蹈', '情感', '知识', '动植物', '剧情', '游戏', '才艺', '时尚', '美食', '文化教育', '动漫二次元', '亲子', '旅行', '汽车', '科技', '政务', '创意', '校园', '日常生活', '新闻资讯', '三农', '其他']) self.combo_from.activated[str].connect(self.onLanFromActivated) self.combo_from.move(120, 75) self.combo_from.resize(250, 30) #发布时间间隔输入框和提示 self.gapLabel = QLabel(self) self.gapLabel.move(30, 120) self.gapLabel.resize(100,30) self.gapLabel.setText("发布时间间隔:") self.gap_le = QLineEdit('1', self) self.gap_le.move(120,120) self.gap_le.resize(250, 30) # 时间选择器 self.dateTimeLabel = QLabel(self) self.dateTimeLabel.move(30, 165) self.dateTimeLabel.resize(100,30) self.dateTimeLabel.setText("发布开始时间:") self.dateTime_le = QDateTimeEdit(QDateTime.currentDateTime(), self) self.dateTime_le.setDisplayFormat("yyyy-MM-dd HH:mm") self.dateTime_le.move(120, 165) self.dateTime_le.resize(250, 30) #上传按钮 self.save_btn = QPushButton('开始上传',self) self.save_btn.move(200, 220) self.save_btn.resize(140, 30) self.save_btn.clicked.connect(self.kick) #用户提示区 self.result_le = QLabel('视频分类与抖音后台保持一致', self) self.result_le.move(30, 270) self.result_le.resize(340, 30) self.result_le.setStyleSheet('color: blue;') #整体界面设置 self.resize(400, 400) self.center() self.setWindowTitle('抖音视频自动化上传')#设置界面标题名 self.show() # 窗口居中函数 def center(self): screen = QtWidgets.QDesktopWidget().screenGeometry()#获取屏幕分辨率 size = self.geometry()#获取窗口尺寸 self.move(int((screen.width() - size.width()) / 2), int((screen.height() - size.height()) / 2))#利用move函数窗口居中 # 打开的视频文件名称 def select_source(self): dir_path = QFileDialog.getExistingDirectory(self, "请选择文件夹路径", "C:/") self.source_le.setText(str(dir_path)) def set_label_func(self, text): self.result_le.setText(text) def onLanFromActivated(self, text): self.cat_form = text def switch_func(self, bools): self.switch = bools def kick(self): source = self.source_le.text().strip()#源文件夹路径 category = self.cat_form.strip()#视频分类 gap = self.gap_le.text().strip()#时间间隔 # start_time = str(self.dateTime_le.text())#定时发布开始时间 # start_time = time.mktime(time.strptime(self.dateTime_le.text(), '%Y-%m-%d %H:%M'))#定时发布开始时间 start_time = datetime.datetime.strptime(self.dateTime_le.text(),"%Y-%m-%d %H:%M")#定时发布开始时间 if self.switch and source != '' and category != '' and gap != '': self.switch = False self.set_label_func('请耐心等待,正在打开浏览器!') self.my_thread = MyThread(source, category, gap, start_time, self.set_label_func)#实例化线程对象 self.my_thread.start()#启动线程 self.my_thread.my_signal.connect(self.switch_func)