【求助】动画组态设置权限 点击:473 | 回复:10



爱你的假老练

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 0回
  • 年度积分:108
  • 历史总积分:108
  • 注册:2024年5月17日
发表于:2024-05-21 22:52:58
楼主
求助帖100分-未结帖

动画组态在对普通图形对象进行动画组态时,按钮输入和按钮动作两个动画功能可以进行权限设置。运行时,只有有操作权限的用户登录,鼠标在图形对象的上面才能响应鼠标的按键动作。

官网原话,这个怎么利用函数设置啊?有偿求问



楼主最近还看过

小糖同学

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 14回
  • 年度积分:136
  • 历史总积分:136
  • 注册:2024年2月29日
发表于:2024-05-22 08:38:03
1楼

你不讲哪个品牌,哪个型号,什么软件,这样问就很下饭

空不异色

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:22帖 | 616回
  • 年度积分:32
  • 历史总积分:25990
  • 注册:2020年3月27日
发表于:2024-05-22 09:02:32
2楼

各个品牌有所不同,只能说一个大概的步骤:

要实现这种基于用户权限的图形对象动画组态功能,通常需要在你的应用程序中集成用户权限管理系统。以下是一个简化的步骤和伪代码示例,展示了如何在你的程序中实现这个功能:

  1. 定义用户权限:首先,你需要定义不同级别的用户权限,并确定哪些用户具有哪些图形的操作权限。

  2. 用户登录:用户登录时,系统应验证其凭据并为其分配相应的权限。

  3. 图形对象管理:对于每个图形对象,你需要一个方式来存储其是否可以被当前用户操作的信息。

  4. 鼠标事件处理:在图形对象上的鼠标事件处理函数中,你需要检查当前用户是否具有操作该对象的权限。

以下是伪代码示例:

python复制代码# 假设有一个用户类和一个图形对象类  class User:def __init__(self, username, password, permissions):self.username = usernameself.password = passwordself.permissions = permissions  # 例如: ['view_graphs', 'edit_graphs']  class GraphObject:def __init__(self, id, name, can_be_operated_by_current_user=False):self.id = id  self.name = nameself.can_be_operated_by_current_user = can_be_operated_by_current_userdef check_and_execute_action(self, user, action):if self.can_be_operated_by_current_user and 'edit_graphs' in user.permissions:# 执行动作,例如动画效果  print(f"User {user.username} is executing action {action} on graph object {self.name}")else:print("User does not have permission to operate this graph object.")# 用户登录函数  def user_login(username, password):# 验证用户凭据并返回用户对象(或None)  # 这里只是示例,实际中你需要从数据库或其他存储中验证凭据  if username == 'admin' and password == 'password':return User(username, password, ['view_graphs', 'edit_graphs'])return None  # 假设有一个当前登录的用户  current_user = user_login('admin', 'password')# 假设你有一个图形对象  graph_obj = GraphObject(1, 'My Graph')# 设置图形对象是否可以被当前用户操作(这通常会在用户登录后根据权限动态设置)  if current_user and 'edit_graphs' in current_user.permissions:graph_obj.can_be_operated_by_current_user = True  # 在鼠标事件处理函数中  def on_mouse_click(event, graph_obj, current_user):if event.type == MOUSEBUTTONDOWN:graph_obj.check_and_execute_action(current_user, 'click')# 假设鼠标点击事件发生了  on_mouse_click(some_mouse_event, graph_obj, current_user)



空不异色

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:22帖 | 617回
  • 年度积分:32
  • 历史总积分:25990
  • 注册:2020年3月27日
发表于:2024-05-22 09:03:05
3楼

# 假设有一个用户类和一个图形对象类   class User:      def __init__(self, username, password, permissions):          self.username = username          self.password = password          self.permissions = permissions  # 例如: ['view_graphs', 'edit_graphs']     class GraphObject:      def __init__(self, id, name, can_be_operated_by_current_user=False):          self.id = id          self.name = name          self.can_be_operated_by_current_user = can_be_operated_by_current_user        def check_and_execute_action(self, user, action):          if self.can_be_operated_by_current_user and 'edit_graphs' in user.permissions:              # 执行动作,例如动画效果              print(f"User {user.username} is executing action {action} on graph object {self.name}")          else:              print("User does not have permission to operate this graph object.")     # 用户登录函数   def user_login(username, password):      # 验证用户凭据并返回用户对象(或None)      # 这里只是示例,实际中你需要从数据库或其他存储中验证凭据      if username == 'admin' and password == 'password':          return User(username, password, ['view_graphs', 'edit_graphs'])      return None     # 假设有一个当前登录的用户   current_user = user_login('admin', 'password')     # 假设你有一个图形对象   graph_obj = GraphObject(1, 'My Graph')     # 设置图形对象是否可以被当前用户操作(这通常会在用户登录后根据权限动态设置)   if current_user and 'edit_graphs' in current_user.permissions:      graph_obj.can_be_operated_by_current_user = True     # 在鼠标事件处理函数中   def on_mouse_click(event, graph_obj, current_user):      if event.type == MOUSEBUTTONDOWN:          graph_obj.check_and_execute_action(current_user, 'click')     # 假设鼠标点击事件发生了   on_mouse_click(some_mouse_event, graph_obj, current_user)

JSdanzi

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 542回
  • 年度积分:15
  • 历史总积分:9255
  • 注册:2012年9月22日
发表于:2024-05-23 08:26:15
4楼

抖音 找费费的 记得有一期讲的跟你所说的很类似,  主要是C# 窗体相关的 不知道你用啥做的上位机

Smile-lyc

  • [管理员]
  • 精华:136帖
  • 求助:53帖
  • 帖子:3588帖 | 22863回
  • 年度积分:498
  • 历史总积分:158889
  • 注册:2006年8月04日
发表于:2024-07-08 10:42:35
9楼

感谢求助者和答疑者对求助答疑板块的厚爱,赠人玫瑰,手留余香。

对于求助者要求:

1、请在一个月内自行结贴,把悬赏积分(如果设置积分悬赏求助)发放给答疑者;

2、如果在求助答疑过程中,自己已经有效解决问题,建议大家把解决问题方法在自己求助帖分享,有效分享可以获得50积分奖励。

3、求助答疑板块版主结贴时间一般滞后30~45天,以方便大家对求助问题答疑足够时间,也为了每一个优秀答疑人员都可以获取到自己的积分和MP奖励。

4、2024龙年加油!龙年棒棒!




回复本条

    

san760105

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:26
  • 历史总积分:26
  • 注册:2024年10月02日
发表于:2024-10-14 14:14:52
10楼

都是高手

回复本条

    

热门招聘
相关主题

官方公众号

智造工程师