rscder-pub/rscder/gui/location.py
2023-07-26 20:53:08 +08:00

68 lines
2.3 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)