Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 图像按钮Kivy_Python_Linux_Windows_Kivy - Fatal编程技术网

Python 图像按钮Kivy

Python 图像按钮Kivy,python,linux,windows,kivy,Python,Linux,Windows,Kivy,正在尝试从LauncherApp()内的ImageButton调用vsOpen;目标是使按钮上有图像,以响应输入。调用VsOpen表示,如果self被放置在I receive“ImageButton没有self属性”中,则我缺少self作为参数。正如你可以看到下面我有正常的按钮工作,但我似乎不能正确地创建一个按钮的形象。有人能解释一下我会怎么做吗 from kivy.app import App from kivy.uix.floatlayout import FloatLayout from

正在尝试从LauncherApp()内的ImageButton调用vsOpen;目标是使按钮上有图像,以响应输入。调用VsOpen表示,如果self被放置在I receive“ImageButton没有self属性”中,则我缺少self作为参数。正如你可以看到下面我有正常的按钮工作,但我似乎不能正确地创建一个按钮的形象。有人能解释一下我会怎么做吗

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout 
from kivy.config import Config
from kivy.uix.image import Image
from kivy.uix.button import Button
from kivy.uix.behaviors import ButtonBehavior
from cryptography.fernet import Fernet
from colorama import Fore, Style
import webbrowser as browser
import subprocess
import os

PATHs=[#other_program_names/locations_go_here]

class ImageButton(ButtonBehavior, Image):  
            def on_press(self):  
                for x in range(0, 2):
                    iD=Fernet.generate_key()
                    cipher = Fernet(iD)
                    url = input(">")
                    crypt_url=cipher.encrypt(bytes(url, "utf-8"))
                    if url != "":
                        if url.startswith("www.", 0,4):
                            dcrypt_url=cipher.decrypt(bytes(crypt_url))
                            browser.open_new_tab(dcrypt_url)
                            print(Fore.BLUE+"Accessing " + url + "..")
                        else:
                            print("String given was not a url")
                            quit
                    else:
                        print(Fore.RED+">no url was entered..")
                        quit

            def vsOpen(self):
                try:
                    if os.path.isfile(PATHs[0]) == 1:
                        self.x=subprocess.call(PATHs[0])
                    else:
                        print(Fore.RED+"vsCode was not found"+Style.BRIGHT)
                except TypeError:
                    print("Type error has occured at vsOpen")
                    quit


        class LauncherApp(App):
            def build(self):
                layout=FloatLayout(size=(200,200))
                #Normal Buttons were here
                layout.add_widget(ImageButton.vsOpen())
                layout.add_widget(ImageButton.on_press())
                return layout

root = LauncherApp()
if __name__ == "__main__":
    root.run()
我不知道你期望它做什么,但这毫无意义
vsOpen
是ImageButton类的一种方法,您应该只从类实例调用它,而不是从类本身调用它(除非您知道自己在做什么并且有很好的理由)


即使它以某种方式运行了该方法,它也不会返回可以添加到布局中的小部件,因此不清楚您真正想要实现什么。

请发布一篇文章,我想我知道了。很抱歉。我重新编辑了代码,希望它更清晰。我正在尝试创建带有图像的按钮我在上一次编辑中使用了普通按钮,并且能够从
layout.add\u小部件(ImageButton.on\u press())
调用
return layout
但无法调用
layout.add\u小部件。(ImageButton.vsOpen())
并想知道是否有办法正确修复此问题,以便添加多个带有图像的按钮。@RVN恐怕没有任何变化,您的代码毫无意义。即使是
layout.add\u小部件(ImageButton.on\u press())
也不应该真正起作用,我也不知道你到底想做什么。
layout.add_widget(ImageButton.vsOpen())