使用突出显示的文本作为python脚本的输入?

时间:2017-05-04 04:27:55

标签: python-3.x binary windows-10 decimal regedit

我有一个python脚本,可以将二进制转换为十进制,十进制转换为二进制,我希望能够突出显示文本,右键单击它,在窗口(10)的下拉菜单中选择一个选项并拥有它转换号码,告诉我通知或其他什么。 我知道为了运行脚本,我需要编辑注册表,但具体如何,以及如何使用突出显示的文本作为输入并发送通知对我来说是一个谜。 如果它有任何帮助,那么代码目前是

    import math

def binToDec(binary):
    decimal = 0
    i = 0
    while (binary != 0):
        remainder = binary%10
        binary = int(binary/10)
        decimal += remainder*pow(2,i)
        i+=1
    return int(decimal)

def decToBin(decimal):
    binary = ""
    while (decimal > 0):
        remainder = int(decimal%2)
        div = int(decimal/2)
        binary += str(remainder)
        decimal = div
    return int(binary[::-1])
我知道在这种状态下没用。我通常需要在正确的方向上指出一点或关于如何进行此操作的说明,我们将非常感激。

1 个答案:

答案 0 :(得分:0)

您可以使用GUI库python offer。

关于this question,这是一个片段代码,使用tkinter(python3x)创建一个menubutton列表,其中包含你的例子的binToDec(1010)和decToBin(10)的选项:

import math

def binToDec(binary):
    decimal = 0
    i = 0
    while (binary != 0):
        remainder = binary%10
        binary = int(binary/10)
        decimal += remainder*pow(2,i)
        i+=1
    return int(decimal)

def decToBin(decimal):
    binary = ""
    while (decimal > 0):
        remainder = int(decimal%2)
        div = int(decimal/2)
        binary += str(remainder)
        decimal = div
    return int(binary[::-1])



import tkinter as tk

def cbc(num, tex):
    return lambda : callback(num, tex)

def callback(num, tex):
    s = '{}\n'.format(num)
    tex.insert(tk.END, s)
    tex.see(tk.END)        

top = tk.Tk()
tex = tk.Text(master=top)
tex.pack(side=tk.RIGHT)
bop = tk.Frame()
bop.pack(side=tk.LEFT)

b1 = tk.Button(bop, text="binToDec(1010)",
       command=cbc(binToDec(1010),tex))
b1.pack()
b2 = tk.Button(bop, text="decToBin(10)", command=cbc(decToBin(10),tex))
b2.pack()

tk.Button(bop, text='Exit', command=top.destroy).pack()
top.mainloop()

虽然对于你的脚本来说,简单地使它成为命令行实用程序(在windows环境中安装python然后直接从命令行(cmd)运行脚本)会更简单。