114 lines
3.4 KiB
Python
114 lines
3.4 KiB
Python
import sys
|
|
import os
|
|
from loguru import logger
|
|
from PySide6.QtWidgets import QApplication, QMainWindow, QTabWidget
|
|
from PySide6.QtCore import QTimer
|
|
|
|
from server_connection_tab import ServerConnectionTab
|
|
from remote_command_tab import RemoteCommandTab
|
|
from django_tab import DjangoTab
|
|
from gunicorn_tab import GunicornTab
|
|
|
|
|
|
class MainWindow(QMainWindow):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.setWindowTitle("服务器管理工具")
|
|
self.setGeometry(100, 100, 800, 600)
|
|
|
|
# 创建标签页
|
|
self.tab_widget = QTabWidget()
|
|
|
|
# 服务器连接标签
|
|
self.server_tab = ServerConnectionTab()
|
|
self.tab_widget.addTab(self.server_tab, "服务器连接")
|
|
|
|
# 远程命令标签
|
|
self.remote_tab = RemoteCommandTab(self.server_tab)
|
|
self.tab_widget.addTab(self.remote_tab, "远程命令")
|
|
|
|
# Django标签
|
|
self.django_tab = DjangoTab(self.server_tab)
|
|
self.tab_widget.addTab(self.django_tab, "Django")
|
|
|
|
# Gunicorn标签
|
|
self.gunicorn_tab = GunicornTab(self.server_tab)
|
|
self.tab_widget.addTab(self.gunicorn_tab, "Gunicorn")
|
|
|
|
self.setCentralWidget(self.tab_widget)
|
|
|
|
# 连接标签切换事件
|
|
self.tab_widget.currentChanged.connect(self.on_tab_changed)
|
|
|
|
# 设置样式
|
|
self.setStyleSheet("""
|
|
QMainWindow {
|
|
background-color: #f0f0f0;
|
|
}
|
|
QTabWidget::pane {
|
|
border: 1px solid #c4c4c3;
|
|
background: white;
|
|
}
|
|
QTabBar::tab {
|
|
background: #e1e1e1;
|
|
border: 1px solid #c4c4c3;
|
|
padding: 8px 16px;
|
|
margin-right: 2px;
|
|
}
|
|
QTabBar::tab:selected {
|
|
background: white;
|
|
border-bottom-color: white;
|
|
}
|
|
QPushButton {
|
|
background-color: #0078d4;
|
|
color: white;
|
|
border: none;
|
|
padding: 8px 16px;
|
|
border-radius: 4px;
|
|
font-weight: bold;
|
|
}
|
|
QPushButton:hover {
|
|
background-color: #106ebe;
|
|
}
|
|
QPushButton:pressed {
|
|
background-color: #005a9e;
|
|
}
|
|
QPushButton:disabled {
|
|
background-color: #cccccc;
|
|
color: #666666;
|
|
}
|
|
QLineEdit {
|
|
border: 1px solid #c4c4c3;
|
|
padding: 6px;
|
|
border-radius: 3px;
|
|
background-color: white;
|
|
}
|
|
QTextEdit {
|
|
border: 1px solid #c4c4c3;
|
|
background-color: #f8f8f8;
|
|
font-family: 'Consolas', 'Monaco', monospace;
|
|
}
|
|
QProgressBar {
|
|
border: 1px solid #c4c4c3;
|
|
border-radius: 3px;
|
|
text-align: center;
|
|
background-color: #f0f0f0;
|
|
}
|
|
QProgressBar::chunk {
|
|
background-color: #0078d4;
|
|
}
|
|
""")
|
|
|
|
def on_tab_changed(self, index):
|
|
"""标签切换事件处理"""
|
|
pass
|
|
|
|
|
|
if __name__ == "__main__":
|
|
logger.add("app.log", rotation="1 day", retention="7 days")
|
|
logger.info("应用程序启动")
|
|
|
|
app = QApplication(sys.argv)
|
|
window = MainWindow()
|
|
window.show()
|
|
sys.exit(app.exec()) |