当前位置: 首页 > 知识库问答 >
问题:

Python for Maya:检测CTRL S,然后模拟返回击键

苏涵润
2023-03-14

我需要一个在后台(或者理想情况下,在Maya中)运行的Python脚本,它可以执行以下操作:

  1. 脚本正在运行
  2. 我按Ctrl S,脚本检测到它
  3. 脚本模拟返回击键
  4. 脚本正在运行

目前,根据这里和那里的一些答案,我可以成功地检测CTRL S击键。我试图按照这个答案来模拟WScript的击键。壳牌,但没有成功。

我仍然缺少的是:在脚本检测到CTRL S击键之后,模拟返回击键(即步骤3)。

我的代码:

import Tkinter as tk
import win32com.client as comclt

class App(object):
    def __init__(self):
        self.comboKeys = False
        self.enterKey = False


    def keyPressed(self,event):
        print "--"

        # if Esc is pressed, stop script
        if event.keysym == 'Escape':
            root.destroy()

        # if CTRL+S is pressed
        elif event.keysym == 's':
            self.comboKeys = True


    def keyReleased(self,event):
        if event.keysym == 's':
            self.comboKeys = False


    def task(self):
        if self.comboKeys:
            print 'CTRL+S key pressed!'

        root.after(20,self.task)

application = App()
root = tk.Tk()
print( "Press arrow key (Escape key to exit):" )

root.bind_all('', application.keyPressed)
root.bind_all('', application.keyReleased)
root.after(20,application.task)

root.mainloop()

非常感谢!如果我错过了任何信息,请让我知道。

共有1个答案

柯立果
2023-03-14

如果您已加入TK,并且需要运行TK,但不需要直接与Maya交互,则可以使用TK应用程序启动单独的进程,并通过Maya命令端口与TK通信,或使用库(如rpyc或zeromq)将事件发送到Maya。这是一种痛苦,因为您必须前后序列化通信。

如果你更清楚应用程序内部发生了什么,这可能会对我们有所帮助。你想做的是文本输入吗?

 类似资料:
  • 这是我的实际服务方法。在测试时,它给我的变量为空。用户和响应 我试图写一个测试用例和模拟方法findByEmail()和保存(),但同时嘲笑我没有收到用户对象在返回中提到的thenback()和doback()。 有人能帮忙吗。

  • 我对反应性编程相对较新。我的问题是关于

  • 我目前正在学习Spring boot,我一直在测试一个项目——非常感谢任何帮助,因为我是这里的初学者。 我有一个rest控制器测试,使用Mockito,当使用Mockito.when()调用方法时,该测试似乎忽略了Then返回。 这是整个班级: 名为“testCreateUser”的测试没有问题地通过了。给我一个问题的是名为“testFindUserById”的测试。 以下是我尝试测试的控制器方法

  • 我正在尝试测试一种使用hibernate、junit和mocking连接到db的方法 这是我的代码 UserDAO. java UserDAOImpl。Java语言 TestUserDAOImpl 测试用例向db添加了一组用户名和密码,但当我尝试使用返回结果时,它会返回一个空列表。 有人能帮我解决这个问题吗?

  • 调试时,在带有的行中弹出一个NullPointerException,类为。

  • 我试图测试一个简单POST Rest调用,但存在NullPointerException。 我的RestController: 我的单元测试: 由于以下错误,此测试失败:NullPointerException,确切地说,response ResponseEntity对象为Null。 verify输出将执行以下操作: 知道为什么响应是空的吗?我为测试使用了正确的注释,因此应该注入模拟。也许我在这里