Skip to content
Snippets Groups Projects
properties_window.py 2.66 KiB
Newer Older
  • Learn to ignore specific revisions
  • from PyQt5.QtWidgets import QDialog, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout,\
    QLabel, QCheckBox
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import QIntValidator
    
    class PropertiesWindow(QDialog):
        def __init__(self, operation, main_window):
            super(PropertiesWindow, self).__init__()
            self.operation = operation
            self.main_window = main_window
            self.setWindowFlags(Qt.WindowTitleHint | Qt.WindowCloseButtonHint)
            self.setWindowTitle("Properties")
            
            self.name_layout = QHBoxLayout()
            self.name_layout.setSpacing(50)
            self.name_label = QLabel("Name:")
            self.edit_name = QLineEdit(self.operation.operation_path_name)
            self.name_layout.addWidget(self.name_label)
            self.name_layout.addWidget(self.edit_name)
    
            self.vertical_layout = QVBoxLayout()
            self.vertical_layout.addLayout(self.name_layout)
    
            if self.operation.operation_path_name == "c":
                self.constant_layout = QHBoxLayout()
                self.constant_layout.setSpacing(50)
                self.constant_value = QLabel("Constant:")
                self.edit_constant = QLineEdit(str(self.operation.operation.value))
                self.only_accept_int = QIntValidator()
                self.edit_constant.setValidator(self.only_accept_int)
                self.constant_layout.addWidget(self.constant_value)
                self.constant_layout.addWidget(self.edit_constant)
                self.vertical_layout.addLayout(self.constant_layout)
    
            self.show_name_layout = QHBoxLayout()
            self.check_show_name = QCheckBox("Show name?")
            if self.operation.is_show_name:
                self.check_show_name.setChecked(1)
            else:
                self.check_show_name.setChecked(0)
            self.check_show_name.setLayoutDirection(Qt.RightToLeft)
            self.check_show_name.setStyleSheet("spacing: 170px")
            self.show_name_layout.addWidget(self.check_show_name)
            self.vertical_layout.addLayout(self.show_name_layout)
    
            self.ok = QPushButton("OK")
            self.ok.clicked.connect(self.save_properties)
            self.vertical_layout.addWidget(self.ok)
            self.setLayout(self.vertical_layout)
    
        def save_properties(self):
            self.operation.name = self.edit_name.text()
            self.operation.label.setPlainText(self.operation.name)
            if self.operation.operation_path_name == "c":
                self.operation.operation.value = self.edit_constant.text()
            if self.check_show_name.isChecked():
                self.operation.label.setOpacity(1)
                self.operation.is_show_name = True
            else:
                self.operation.label.setOpacity(0)
                self.operation.is_show_name = False
            self.reject()