brisonus_app_eq/ERNCTuningTool/components/common/custom_widget.py

60 lines
1.8 KiB
Python
Raw Permalink Normal View History

2025-02-18 22:05:52 +08:00
from PySide6.QtCore import Signal
from PySide6.QtWidgets import QHBoxLayout, QLabel, QPushButton, QLineEdit, QDialog
class CustomWidget(QDialog):
signal_accepted = Signal(float)
def __init__(self, parent=None):
super().__init__(parent)
self.setAutoFillBackground(True)
# self.resize(280, 40)
# self.setStyleSheet("background-color:white;")
self.setModal(True)
# 自定义 Widget包含一个标签和一个文本框
self.layout = QHBoxLayout()
self.label = QLabel("输入数值:", self)
self.line_edit = QLineEdit(self)
# self.line_edit.setText() # 设置初始文本
self.push_button_set = QPushButton('', self)
self.push_button_cancel = QPushButton('', self)
self.layout.addWidget(self.label)
self.layout.addWidget(self.line_edit)
self.layout.addWidget(self.push_button_set)
self.layout.addWidget(self.push_button_cancel)
self.layout.setStretch(0, 1)
self.layout.setStretch(1, 2)
self.layout.setStretch(2, 1)
self.layout.setStretch(3, 1)
self.push_button_cancel.clicked.connect(self.close)
self.push_button_set.clicked.connect(lambda :self.accept())
self.setLayout(self.layout)
# 监听输入框内容变化
self.line_edit.returnPressed.connect(self.on_text_entered)
def set_input_val(self, text):
self.line_edit.setText(str(text))
def get_input_val(self):
try:
ret_val = float(self.line_edit.text())
return ret_val
except ValueError as e:
return None
def close(self):
self.hide()
def on_text_entered(self):
# 当回车键按下时,发出信号将文本返回
self.accept()
text_entered = Signal(str)