You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

127 lines
4.1 KiB

# -*- coding: utf-8 -*-
import pandas as pd
from threading import Thread
from PyQt5.QtWidgets import QApplication, QMainWindow,QMessageBox
from print_setting_ui import Ui_MainWindow
from PyQt5.QtGui import QFont
from PySide2.QtCore import Signal,QObject
from PyQt5.QtCore import QThread, pyqtSignal, QProcess
import sys
import os
import warnings
import time
import time
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QLabel,
QVBoxLayout, QFileDialog, QMessageBox)
from threading import Thread
from print_factory_type_setting_obj_run import print_type_setting_obj
warnings.filterwarnings('ignore')
pd.set_option('display.width', None)
class MySignals(QObject):
text_print = Signal(str)
update_table = Signal(str)
class MyMainForm(QMainWindow, Ui_MainWindow):
def __init__(self,parent=None):
super(MyMainForm, self).__init__(parent)
self.setupUi(self)
self.folder_path = ""
self.cache_path = ""
self.pushButton.clicked.connect(self.on_select_folder)
self.pushButton_2.clicked.connect(self.on_run_clicked)
self.pushButton_3.clicked.connect(self.on_open_output_clicked)
self.global_ms = MySignals()
self.global_ms.text_print.connect(self.printToGui)
def printToGui(self,text):
n_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
self.textBrowser.append(n_time+" "+str(text))
def on_select_folder(self):
folder = QFileDialog.getExistingDirectory(self, "选择文件夹")
if folder:
self.folder_path = folder
#self.folder_path_label.setText(f"📂 当前选择文件夹: {folder}")
#self.run_status_label.setText("")
self.cache_path = folder + "_arrange"
os.makedirs(self.cache_path, exist_ok=True)
def on_run_clicked(self):
def threadFunc1():
if not self.folder_path:
#self.run_status_label.setText("❗请先选择一个文件夹再执行!")
return
# if hasattr(self, 'worker') and self.worker.isRunning():
# self.run_status_label.setText("⚠ 正在执行中,请稍候...")
# return
#self.run_btn.setEnabled(False)
#self.run_status_label.setText("🚀 程序正在运行,请稍候...")
print_type_setting_obj(
base_original_obj_dir=self.folder_path,
cache_type_setting_dir=self.cache_path,
show_chart=False
)
#self.run_status_label.setText("✅ 排版完成!")
thread = Thread(target=threadFunc1)
thread.start()
def open_file_cross_platform(self, path):
if not os.path.exists(path):
print("路径不存在!")
return
if sys.platform.startswith('win'):
os.startfile(path)
elif sys.platform.startswith('darwin'):
QProcess.startDetached("open", [path])
else:
QProcess.startDetached("xdg-open", [path])
def on_open_output_clicked(self):
output_path = os.path.join(self.cache_path, "print_compact_obj")
if os.path.exists(output_path):
self.open_file_cross_platform(output_path)
else:
self.run_status_label.setText(" 输出文件夹不存在!")
def douyin_spider_go(self):
"""下载抖音视频"""
def threadFunc1():
print("开始下载")
self.load_chrome_video()
thread = Thread(target=threadFunc1)
thread.start()
#thread.run()
def open_config_dir(self):
"""打开文件夹"""
def threadFunc1():
try:
start_directory = os.path.join(self.dir_base)
os.startfile(start_directory)
except RecursionError:
print("打开配置文件夹失败。")
thread = Thread(target=threadFunc1)
thread.start()
if __name__ == '__main__':
#multiprocessing.freeze_support()
app = QApplication(sys.argv)
myWin = MyMainForm()
myWin.show()
sys.exit(app.exec_())