68 lines
2.2 KiB
Python
68 lines
2.2 KiB
Python
from PyQt5.QtWidgets import QDialog, QFormLayout, QLineEdit, QCheckBox, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QTextEdit, QFileDialog, QMessageBox
|
|
from PyQt5 import QtCore, QtGui
|
|
from PyQt5.QtGui import QIcon
|
|
from rscder.utils.icons import IconInstance
|
|
from rscder.utils.setting import Settings
|
|
from rscder.utils.project import Project
|
|
from qgis.core import QgsRectangle
|
|
|
|
class Location(QDialog):
|
|
|
|
extent = QtCore.pyqtSignal(object)
|
|
|
|
def __init__(self, parent = None, flags = QtCore.Qt.WindowFlags() ) -> None:
|
|
super().__init__(parent, flags)
|
|
|
|
self.setWindowTitle("定位")
|
|
self.setWindowIcon(IconInstance(parent).LOGO)
|
|
|
|
X_label = QLabel('X:')
|
|
Y_label = QLabel('Y:')
|
|
X = QLineEdit()
|
|
X.setValidator(QtGui.QDoubleValidator())
|
|
Y = QLineEdit()
|
|
Y.setValidator(QtGui.QDoubleValidator())
|
|
|
|
hlay = QHBoxLayout()
|
|
hlay.addWidget(X_label)
|
|
hlay.addWidget(X)
|
|
hlay.addWidget(Y_label)
|
|
hlay.addWidget(Y)
|
|
|
|
btns = QPushButton('确定')
|
|
hlay.addWidget(btns)
|
|
self.setLayout(hlay)
|
|
|
|
def loc():
|
|
x = float(X.text())
|
|
y = float(Y.text())
|
|
extent = QgsRectangle(x - 100, y - 100, x + 100, y + 100 )
|
|
self.extent.emit(extent)
|
|
|
|
btns.clicked.connect(loc)
|
|
# form_layout = QFormLayout(self)
|
|
# default_size_label = QLabel('默认格网')
|
|
# default_size = QLineEdit()
|
|
# default_size.setValidator(QtGui.QIntValidator(1, 1000))
|
|
|
|
# def set_defaultsize():
|
|
# Settings.General().size = (int(default_size.text()), int(default_size.text()))
|
|
# # form_layout.addRow
|
|
# default_size.textChanged.connect( set_defaultsize )
|
|
|
|
|
|
# form_layout.addRow(default_size_label, default_size)
|
|
|
|
# self.setLayout(form_layout)
|
|
|
|
# auto_save_label = QLabel('自动保存')
|
|
# auto_save = QCheckBox()
|
|
# auto_save.setChecked(Settings.General().auto_save)
|
|
|
|
# def set_autosave():
|
|
# Settings.General().auto_save = auto_save.isChecked()
|
|
|
|
# auto_save.stateChanged.connect(set_autosave)
|
|
|
|
# form_layout.addRow(auto_save_label, auto_save)
|