华荣三照明、合信、荣欣八组合馈电
This commit is contained in:
147
QT5_Project/Shared_CODE/DialogModifyAlias.py
Normal file
147
QT5_Project/Shared_CODE/DialogModifyAlias.py
Normal file
@ -0,0 +1,147 @@
|
||||
import sys
|
||||
import os
|
||||
from PyQt5.QtWidgets import QApplication, QWidget, QDialog, QLabel, QVBoxLayout, QPushButton, QMessageBox, QComboBox, QDialogButtonBox, QShortcut
|
||||
from PyQt5 import uic
|
||||
from PyQt5.QtGui import QKeySequence
|
||||
from PyQt5.QtCore import Qt, QEvent, QObject
|
||||
import json
|
||||
# from print_color import *
|
||||
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
|
||||
ui_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../Shared_UI'))
|
||||
ui_file_path = os.path.join(ui_path, "DialogModifyAlias.ui")
|
||||
|
||||
class DialogModifyAlias(QDialog):
|
||||
def __init__(self, main_window, parent=None):
|
||||
super(DialogModifyAlias, self).__init__(parent)
|
||||
# Load UI file
|
||||
uic.loadUi(ui_file_path, self)
|
||||
combo : QComboBox = self.comboBox
|
||||
|
||||
combo.clear()
|
||||
self.alias_item_dict = {}
|
||||
self.main_window = main_window
|
||||
|
||||
self.setWindowTitle("别名参数修改")
|
||||
self.setWindowFlag(Qt.FramelessWindowHint)
|
||||
self.buttonBox.button(QDialogButtonBox.Ok).setText('确定')
|
||||
self.buttonBox.button(QDialogButtonBox.Cancel).setText('取消')
|
||||
self.buttonBox.clicked.connect(self.dialog_button_ok_clicked)
|
||||
|
||||
#定义4个快捷键, Key_Enter, Key_Escape经常被各类程序模块使用, 用Key_End, 与Key_Home来代替
|
||||
QShortcut(QKeySequence(Qt.Key_Up), self, activated=self.key_increase_parameter)
|
||||
QShortcut(QKeySequence(Qt.Key_Down), self, activated=self.key_decrease_parameter)
|
||||
QShortcut(QKeySequence(Qt.Key_PageDown), self, activated=self.key_enter_process)
|
||||
QShortcut(QKeySequence(Qt.Key_PageUp), self, activated=self.key_escape_process)
|
||||
QShortcut(QKeySequence(Qt.Key_End), self, activated=self.key_enter_process)
|
||||
QShortcut(QKeySequence(Qt.Key_Home), self, activated=self.key_escape_process)
|
||||
|
||||
home_button = self.findChild(QPushButton, "KEY_HOME")
|
||||
if home_button:
|
||||
home_button.clicked.connect(self.key_escape_process)
|
||||
|
||||
end_button = self.findChild(QPushButton, "KEY_END")
|
||||
if end_button:
|
||||
end_button.clicked.connect(self.key_enter_process)
|
||||
|
||||
up_button = self.findChild(QPushButton, "KEY_UP")
|
||||
if up_button:
|
||||
up_button.clicked.connect(self.key_increase_parameter)
|
||||
|
||||
down_button = self.findChild(QPushButton, "KEY_DOWN")
|
||||
if down_button:
|
||||
down_button.clicked.connect(self.key_decrease_parameter)
|
||||
|
||||
def set_caption_name(self, name : str) :
|
||||
label : QLabel = self.label
|
||||
label.setText(name)
|
||||
|
||||
def key_increase_parameter(self):
|
||||
combo : QComboBox = self.comboBox
|
||||
index = combo.currentIndex()
|
||||
index += 1
|
||||
if index >= combo.count() :
|
||||
index = 0
|
||||
combo.setCurrentIndex(index)
|
||||
|
||||
def key_decrease_parameter(self):
|
||||
combo : QComboBox = self.comboBox
|
||||
index = combo.currentIndex()
|
||||
index -= 1
|
||||
if index < 0 :
|
||||
index = combo.count() - 1
|
||||
combo.setCurrentIndex(index)
|
||||
|
||||
def get_alias_key_str(self):
|
||||
combo : QComboBox = self.comboBox
|
||||
select_text = combo.currentText()
|
||||
alias_key = None
|
||||
for alias_key, alias_str in self.alias_item_dict.items() :
|
||||
if alias_str == select_text :
|
||||
return alias_key
|
||||
return alias_key
|
||||
|
||||
@property
|
||||
def value(self):
|
||||
alias_key = self.get_alias_key_str()
|
||||
return alias_key
|
||||
|
||||
def modify_alias_value(self, modify_str) :
|
||||
if self.main_window != None :
|
||||
if hasattr(self.main_window, "func_call_back_on_mqtt_param_modify") :
|
||||
self.main_window.func_call_back_on_mqtt_param_modify(modify_str)
|
||||
|
||||
def key_enter_process(self):
|
||||
alias_key = self.get_alias_key_str()
|
||||
self.modify_alias_value(alias_key)
|
||||
self.buttonBox.button(QDialogButtonBox.Ok).click()
|
||||
|
||||
def key_escape_process(self):
|
||||
self.buttonBox.button(QDialogButtonBox.Cancel).click()
|
||||
|
||||
def set_alias_item_info(self, alias_item_dict, key_value, inform_message : str = "系统参数") :
|
||||
combo : QComboBox = self.comboBox
|
||||
|
||||
self.alias_item_dict = alias_item_dict
|
||||
combo.clear()
|
||||
current_index = 0
|
||||
select_index = -1
|
||||
|
||||
self.set_caption_name(inform_message)
|
||||
|
||||
for key, value_str in alias_item_dict.items() :
|
||||
combo.addItem(value_str)
|
||||
if key_value == key :
|
||||
select_index = current_index
|
||||
current_index += 1
|
||||
|
||||
if select_index >= 0 :
|
||||
combo.setCurrentIndex(select_index)
|
||||
else :
|
||||
combo.setCurrentText(key_value)
|
||||
|
||||
def dialog_button_ok_clicked(self, button):
|
||||
if button == self.buttonBox.button(QDialogButtonBox.Ok) :
|
||||
alias_key = self.get_alias_key_str()
|
||||
self.modify_alias_value(alias_key)
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
alias_select = {0 : "380V", 1 : "660V", 2: "1140V", 3 : "3300V"}
|
||||
json_msg : str = json.dumps(alias_select, ensure_ascii=False)
|
||||
# print_inform_msg(json_msg)
|
||||
|
||||
alias_2 = {"alias_voltage" : {0 : "380V", 1 : "660V", 2: "1140V", 3 : "3300V"}}
|
||||
json_msg2 : str = json.dumps(alias_2, ensure_ascii=False)
|
||||
# print_inform_msg(json_msg2)
|
||||
|
||||
|
||||
dialog = DialogModifyAlias(None)
|
||||
dialog.set_alias_item_info(alias_select, 1)
|
||||
dialog.show()
|
||||
result = dialog.exec_()
|
||||
|
||||
# if dialog.result() == QDialog.Accepted:
|
||||
# print_inform_msg(dialog.get_alias_key_str()) # 输出: Button clicked
|
||||
|
||||
sys.exit(0)
|
||||
Reference in New Issue
Block a user