132 lines
5.0 KiB
Python
132 lines
5.0 KiB
Python
from pathlib import Path
|
|
from PyQt5.QtWidgets import QDialog, QFileDialog, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, QLabel, QMessageBox
|
|
from PyQt5.QtGui import QIcon, QIntValidator
|
|
from PyQt5.QtCore import Qt
|
|
from rscder.utils.icons import IconInstance
|
|
from rscder.utils.project import Project
|
|
from rscder.utils.setting import Settings
|
|
|
|
class Create(QDialog):
|
|
|
|
def __init__(self, parent=None) -> None:
|
|
super().__init__(parent)
|
|
self.setWindowTitle(self.tr('创建工程'))
|
|
self.setWindowIcon(IconInstance().LOGO)
|
|
|
|
self.file = str(Path(Settings.General().last_path))
|
|
self.name = '未命名'
|
|
self.max_memory = Settings.Project().max_memory
|
|
self.cell_size = Settings.Project().cell_size
|
|
|
|
file_label = QLabel('工程目录:')
|
|
file_label.setFixedWidth(100)
|
|
file_input = QLineEdit()
|
|
file_input.setPlaceholderText('工程目录')
|
|
file_input.setToolTip('工程目录')
|
|
file_input.setReadOnly(True)
|
|
file_input.setText(self.file)
|
|
self.file_input = file_input
|
|
|
|
file_open = QPushButton('...', self)
|
|
file_open.setFixedWidth(30)
|
|
file_open.clicked.connect(self.open_file)
|
|
|
|
|
|
name_label = QLabel('工程名称:')
|
|
name_label.setFixedWidth(100)
|
|
name_input = QLineEdit()
|
|
name_input.setPlaceholderText('工程名称')
|
|
name_input.setToolTip('工程名称')
|
|
name_input.setText(self.name)
|
|
self.name_input = name_input
|
|
|
|
|
|
name_input_layout = QHBoxLayout()
|
|
name_input_layout.addWidget(name_label)
|
|
name_input_layout.addWidget(name_input)
|
|
|
|
file_input_layout = QHBoxLayout()
|
|
file_input_layout.addWidget(file_label)
|
|
file_input_layout.addWidget(file_input)
|
|
file_input_layout.addWidget(file_open)
|
|
|
|
cell_size_label = QLabel('格网大小:')
|
|
cell_size_label.setFixedWidth(100)
|
|
cell_size_x_label = QLabel('X:')
|
|
cell_size_y_label = QLabel('Y:')
|
|
cell_size_x_input = QLineEdit()
|
|
cell_size_y_input = QLineEdit()
|
|
cell_size_x_input.setPlaceholderText('X')
|
|
cell_size_x_input.setValidator(QIntValidator())
|
|
cell_size_y_input.setPlaceholderText('Y')
|
|
cell_size_y_input.setValidator(QIntValidator())
|
|
cell_size_x_input.setToolTip('X')
|
|
cell_size_y_input.setToolTip('Y')
|
|
cell_size_x_input.setText(str(self.cell_size[0]))
|
|
cell_size_y_input.setText(str(self.cell_size[1]))
|
|
|
|
self.cell_size_x_input = cell_size_x_input
|
|
self.cell_size_y_input = cell_size_y_input
|
|
|
|
cell_input_layout = QHBoxLayout()
|
|
cell_input_layout.addWidget(cell_size_label)
|
|
cell_input_layout.addWidget(cell_size_x_label)
|
|
cell_input_layout.addWidget(cell_size_x_input)
|
|
cell_input_layout.addWidget(cell_size_y_label)
|
|
cell_input_layout.addWidget(cell_size_y_input)
|
|
|
|
max_memory_label = QLabel('最大文件大小 (MB):')
|
|
max_memory_label.setFixedWidth(100)
|
|
max_memory_input = QLineEdit()
|
|
max_memory_input.setPlaceholderText('最大文件大小')
|
|
max_memory_input.setToolTip('最大文件大小')
|
|
max_memory_input.setText(str(self.max_memory))
|
|
max_memory_input.setValidator(QIntValidator())
|
|
self.max_memory_input = max_memory_input
|
|
|
|
ok_button = QPushButton('确定')
|
|
cancel_button = QPushButton('取消')
|
|
|
|
ok_button.clicked.connect(self.ok)
|
|
cancel_button.clicked.connect(self.cancel)
|
|
|
|
button_layout = QHBoxLayout()
|
|
button_layout.setDirection(QHBoxLayout.RightToLeft)
|
|
button_layout.addWidget(ok_button, 0, Qt.AlignHCenter)
|
|
button_layout.addWidget(cancel_button, 0, Qt.AlignHCenter)
|
|
|
|
main_layout = QVBoxLayout()
|
|
main_layout.addLayout(file_input_layout)
|
|
main_layout.addLayout(name_input_layout)
|
|
main_layout.addLayout(cell_input_layout)
|
|
main_layout.addLayout(button_layout)
|
|
|
|
self.setLayout(main_layout)
|
|
|
|
|
|
def open_file(self):
|
|
file = QFileDialog.getExistingDirectory(self, '选择文件夹', self.file)
|
|
if file:
|
|
self.file = file
|
|
Settings.General().last_path = self.file
|
|
self.file_input.setText(self.file)
|
|
|
|
def ok(self):
|
|
self.name = self.name_input.text()
|
|
self.max_memory = self.max_memory_input.text()
|
|
self.cell_size = (self.cell_size_x_input.text(), self.cell_size_y_input.text())
|
|
if self.name == '':
|
|
QMessageBox.warning(self, 'Warning', '请选择工程目录!')
|
|
return
|
|
if self.max_memory == '':
|
|
QMessageBox.warning(self, 'Warning', '请输入最大文件大小!')
|
|
return
|
|
if self.cell_size == ('', ''):
|
|
QMessageBox.warning(self, 'Warning', '请输入格网大小!')
|
|
return
|
|
self.max_memory = int(self.max_memory)
|
|
self.cell_size = (int(self.cell_size[0]), int(self.cell_size[1]))
|
|
self.accept()
|
|
|
|
def cancel(self):
|
|
self.reject() |