要通过python实现遥控器功能分两步:

第一步:开发图形化界面,以暴风TV的遥控器按钮为例

第二步:使PC端给电视发送相应指令(此步骤需要打开电视的adb开关)

现在就开始第一步操作实现遥控器功能,python2输入以下代码

注意:python3需要将代码中的from Tkinter import *

替换为from tkinter import *

将from SimpleDialog import *

替换为import tkinter.simpledialog

#coding=utf-8from Tkinter import *

from SimpleDialog import *

'''

from tkinter import *

import tkinter.simpledialog

'''

root=Tk()

#设置图形的宽高

root.geometry('120x200')

#设置图形为不可拉升

root.resizable(0, 0)

#设置图形的标题

root.title('遥控器')

#添加组件布局

Button(root,text="电源",command="").place(x=45,y=0,)

Button(root,text="左键",command="").place(x=0,y=60,height=30)

Button(root,text="右键",command="").place(x=90,y=60,height=30)

Button(root,text="上键",command="").place(x=45,y=30,height=30)

Button(root,text="下键",command="").place(x=45,y=90,height=30)

Button(root,text="OK",command="").place(x=40,y=60,height=30,width=45)

Button(root,text="主页",command="").place(x=0,y=130,height=30,width=30)

Button(root,text="返回",command="").place(x=45,y=130,height=30,width=30)

Button(root,text="菜单",command="").place(x=90,y=130,height=30,width=30)

Button(root,text="音+",command="").place(x=0,y=170,height=30,width=30)

Button(root,text="音-",command="").place(x=45,y=170,height=30,width=30)

Button(root,text="BIU",command="").place(x=90,y=170,height=30,width=30)

mainloop()

运行成功后,Python2界面显示如左图,Python3界面显示如右图

第二步,在command中加入相应的键值对应的方法,可以先定义好各个方法,举个例子,比如电视的确定键对应的键值是23,那么我们先定义一个ok键对应的方法

defok():

subprocess.call('adb shell input keyevent 23', shell=True)

同时,考虑到按ok键还没执行完毕,我们又按了其它键,这样就需要加入多线程,方法如下

defok_1():

subprocess.call('adb shell input keyevent 23', shell=True)defok():

t=threading.Thread(target=ok_1)

t.start()

这样,简单的遥控器功能,我们就做完了:

#coding=utf-8

from Tkinter import *

from SimpleDialog import *

importsubprocessimportthreading'''from tkinter import *

import tkinter.simpledialog'''

defup_1():

subprocess.call('adb shell input keyevent 19', shell=True)defup():

t=threading.Thread(target=up_1)

t.start()defdown_1():

subprocess.call('adb shell input keyevent 20', shell=True)defdown():

t=threading.Thread(target=down_1)

t.start()defleft_1():

subprocess.call('adb shell input keyevent 21', shell=True)defleft():

t=threading.Thread(target=left_1)

t.start()defright_1():

subprocess.call('adb shell input keyevent 22', shell=True)defright():

t=threading.Thread(target=right_1)

t.start()defhome_1():

subprocess.call('adb shell input keyevent 3', shell=True)defhome():

t=threading.Thread(target=home_1)

t.start()defback_1():

subprocess.call('adb shell input keyevent 4', shell=True)defback():

t=threading.Thread(target=back_1)

t.start()defok_1():

subprocess.call('adb shell input keyevent 23', shell=True)defok():

t=threading.Thread(target=ok_1)

t.start()defvoice_1():

subprocess.call('adb shell input keyevent 24', shell=True)defvoice1():

t=threading.Thread(target=voice_1)

t.start()defvoice_2():

subprocess.call('adb shell input keyevent 25', shell=True)defvoice2():

t=threading.Thread(target=voice_2)

t.start()defmenu_1():

subprocess.call('adb shell input keyevent 82', shell=True)defmenu():

t=threading.Thread(target=menu_1)

t.start()defpower_1():

subprocess.call('adb shell input keyevent 754', shell=True)defpower():

t=threading.Thread(target=power)

t.start()defbiu_1():

subprocess.call('adb shell input keyevent 733', shell=True)defbiu():

t=threading.Thread(target=biu_1)

t.start()

root=Tk()#设置图形的宽高

root.geometry('120x200')#设置图形为不可拉升

root.resizable(0, 0)#设置图形的标题

root.title('遥控器')#添加组件布局

Button(root,text="电源",command=power).place(x=45,y=0,)

Button(root,text="左键",command=left).place(x=0,y=60,height=30)

Button(root,text="右键",command=right).place(x=90,y=60,height=30)

Button(root,text="上键",command=up).place(x=45,y=30,height=30)

Button(root,text="下键",command=down).place(x=45,y=90,height=30)

Button(root,text="OK",command=ok).place(x=40,y=60,height=30,width=45)

Button(root,text="主页",command=home).place(x=0,y=130,height=30,width=30)

Button(root,text="返回",command=back).place(x=45,y=130,height=30,width=30)

Button(root,text="菜单",command=menu).place(x=90,y=130,height=30,width=30)

Button(root,text="音+",command=voice1).place(x=0,y=170,height=30,width=30)

Button(root,text="音-",command=voice2).place(x=45,y=170,height=30,width=30)

Button(root,text="BIU",command=biu).place(x=90,y=170,height=30,width=30)

mainloop()

mainloop()

如何使其能操控电视,需要我们先使用adb命令连接电视ip,在cmd下,输入格式为:adb connect 192.168.XX.XXX

若连接成功后,输入adb devices显示 192.168.XX.XXX devices,表示连接成功,之后就可以用电脑上的遥控器控制电视了

ajax无线遥控器,利用python+tkinter做一个简单的智能电视遥控器相关推荐

  1. html与css编程证书,利用CSS布局做一个简单的荣誉证书(代码示例)

    本篇文章将给大家介绍如何使用css布局制作一个简单的荣誉证书,有趣且实用,希望对需要的朋友有所帮助! 那么利用css布局实现简单荣誉证书样式的效果是非常简单的,主要用到以下几个基础属性: backgr ...

  2. 动手做一个简单的智能小车

    动手做一个简单的智能小车 来到CNDN一年了,看到了许多大佬的杰出作品.也该写点什么来回馈给大家了前不久接触了单片机,想提前进行实践一下所以有想法做一个实体出来,想来想去难的怕自己搞不定,但是还好找到 ...

  3. 初学者笔记(三):利用python列表做一个最简单的垃圾分类

    系列文章目录 初学者笔记(一):利用python求100的因数 初学者笔记(二):利用python输出一个1-100的奇数列表 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目 ...

  4. Python开发——做一个简单的【表白墙】网站

    前言 大家早好.午好.晚好吖 ❤ ~ 今天我们要用Python做Web开发,做一个简单的[表白墙]网站. 众所周知表白墙的功能普遍更多的是发布找人,失物招领, 还是一个大家可以跟自己喜欢的人公开表白的 ...

  5. 用Python代码做一个简单数字小游戏

    #作者是一个十三岁的小男孩. 编辑工具 电脑Python 需要模块 random #今日用代码做一个猜数小游戏 #话不多说,上代码!!! import random number = random.r ...

  6. 利用Python GUI写一个简单的绘画板

    先说废话,再上代码 这个绘画板主要运用了Python自带的标准GUI库Tkinter,包含了画笔颜色选择,背景布颜色选择,橡皮擦,清屏,保存图片等功能. from tkinter import * f ...

  7. 使用python+Tkinter做一个自动关机的图形界面

    之前写了一个自动定时关机的软件,这次把它做成图形界面 https://blog.csdn.net/qq_33289175/article/details/87300783 凡是开发软件必须要走:原型- ...

  8. python自动点名程序_利用python+tkinter开发一个点名软件

    from win32com.client importDispatchfrom tkinter import * importtkinter as tkfrom PIL importImagefrom ...

  9. 使用tkinter做一个简单的计算器

    主要思路:将数字和运算符号都作为按钮展现,当点击按钮时,数字显示在输入框中,点击=号是对数字进行运算,将原来的数字删除,将运算结果展示在输入框中. 注意!当第一个数是0的时候将这个0从输入框中进行删除 ...

最新文章

  1. 一次代码审计实战案例【思路流程】
  2. eoj程序设计基础(基于 C 语言)1067
  3. debug pricing calculation rfc call
  4. C++(22)--继承和派生
  5. CUDA peer to peer多GPU间内存copy技术
  6. mysql窗口界面表格式手工录入_mysql手工注入
  7. CISSP ALL in One 生词汇总
  8. PHP生产一个验证码图片,PHP使用GD库生成验证码图片,实现图片验证
  9. 9.数据操作 数据收集器
  10. 十大管理之项目质量管理知识点
  11. 黑苹果固态硬盘_三款小软件解决MacOS黑苹果下电脑固态硬盘测速难题
  12. UVALive - 4487 HDU3234 UVA12232 【带权并查集】 非常好的一道题!!!
  13. NFT Insider #58:麦当娜和 Beeple 推出 NFT,YGG 与 Magic Eden 达成合作
  14. 过了技术面却在HR面被刷?必备40问!从容应对HR,斩获N多大厂offer!
  15. Spark SQL原理及常用方法详解(二)
  16. android基础学习
  17. VBA-循环语句总结
  18. 抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲
  19. python 空数组判断
  20. 如何解释准确率、精确率与召回率?

热门文章

  1. 用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记(转)...
  2. Nero8 刻录数据到CD/DVD
  3. 解析pubmed文献数据库的xml文章结构
  4. 年底裁员潮,你有没有被N+1?
  5. hadoop重命名文件_hadoop HDFS常用文件操作命令
  6. 云服务器ECS的简介
  7. [Python爬虫] Selenium实现自己主动登录163邮箱和Locating Elements介绍
  8. freemarker之页面静态化
  9. 高博14讲:第七讲中g20报错
  10. php.符号,特殊符号大全