convert domainCheck to regular directory

This commit is contained in:
Your Name
2026-04-16 13:33:06 +08:00
parent e406d73334
commit d37c444929
107 changed files with 254185 additions and 1 deletions

View File

@@ -0,0 +1,137 @@
# -*- coding: UTF-8 -*-
'''
@Project :domainScanDemo
@File :main_window.py
@IDE :PyCharm
@Author :梦伴
@Date :2026/4/8 23:46
@explain : 主窗口
'''
from PySide6.QtWidgets import QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QTabWidget, QLabel, QScrollArea, QFrame
from PySide6.QtCore import Qt
from PySide6.QtGui import QIcon
import os
from loguru import logger
from app.ui.domain_import import DomainImportWidget
from app.ui.domain_filter import DomainFilterWidget
from app.ui.sensitive_words import SensitiveWordsWidget
from app.ui.juming_crawler import JumingCrawlerWidget
from app.ui.system_settings import SystemSettingsWidget
class MainWindow(QMainWindow):
"""
主窗口
"""
def __init__(self):
"""
初始化主窗口
"""
super().__init__()
# 设置窗口标题和大小
self.setWindowTitle("域名工具")
self.setGeometry(100, 100, 2000, 800)
self.setMinimumSize(1200, 720)
# 设置窗口图标
icon_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "favicon.ico")
if os.path.exists(icon_path):
self.setWindowIcon(QIcon(icon_path))
logger.info(f"设置窗口图标成功: {icon_path}")
else:
logger.warning(f"窗口图标文件不存在: {icon_path}")
# 创建中央部件
central_widget = QWidget()
self.setCentralWidget(central_widget)
# 创建主布局
main_layout = QVBoxLayout(central_widget)
# 创建标签页
self.tab_widget = QTabWidget()
self.tab_widget.setStyleSheet("""
QTabWidget {
font-size: 14px;
}
QTabBar::tab {
padding: 10px 20px;
background-color: #f0f0f0;
border: 1px solid #ddd;
border-bottom: none;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
margin-right: 2px;
}
QTabBar::tab:hover {
background-color: #e0e0e0;
}
QTabBar::tab:selected {
background-color: white;
color: #4CAF50;
font-weight: bold;
border-color: #4CAF50;
}
QTabWidget::pane {
border: 1px solid #ddd;
border-top: none;
border-radius: 0 0 4px 4px;
padding: 10px;
}
""")
main_layout.addWidget(self.tab_widget)
# 创建标签页内容
self.create_tabs()
# 记录日志
logger.info("主窗口创建完成")
def create_tabs(self):
"""
创建标签页
"""
# 聚名爬取标签页
juming_widget = JumingCrawlerWidget()
self.tab_widget.addTab(self.wrap_scrollable_tab(juming_widget), "聚名爬取")
# 域名筛选标签页
filter_widget = DomainFilterWidget()
self.tab_widget.addTab(self.wrap_scrollable_tab(filter_widget), "域名筛选")
# 域名导入标签页
import_widget = DomainImportWidget()
self.tab_widget.addTab(self.wrap_scrollable_tab(import_widget), "域名导入")
# 敏感词配置标签页
sensitive_widget = SensitiveWordsWidget()
self.tab_widget.addTab(self.wrap_scrollable_tab(sensitive_widget), "敏感词配置")
# 系统设置标签页
settings_widget = SystemSettingsWidget()
self.tab_widget.addTab(self.wrap_scrollable_tab(settings_widget), "系统设置")
logger.info("标签页创建完成")
def wrap_scrollable_tab(self, widget):
"""
给标签页统一包一层滚动区域,保证右侧滚动条始终可用
"""
container = QWidget()
container_layout = QVBoxLayout(container)
container_layout.setContentsMargins(0, 0, 0, 0)
container_layout.setSpacing(0)
scroll_area = QScrollArea()
scroll_area.setWidgetResizable(True)
scroll_area.setFrameShape(QFrame.NoFrame)
scroll_area.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
scroll_area.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
scroll_area.setWidget(widget)
container_layout.addWidget(scroll_area)
return container