编辑9:在写答案说要更改Exec=/home/insertUsernameHere/volumeGUI/volumeGUI.py
为之前Exec=something or another
,.desktop
文件Exec=
代码不是问题,因为它可以很好地运行gtk-launch
。问题是它不能从“显示应用程序”运行,它什么也不做。另外请看我的屏幕截图这样你就能清楚地看到问题所在。
我一直在尝试(已经有几个小时了)获取一个.desktop
文件来运行我的 python 脚本,但是当我单击应用程序窗口中的图标时,什么也没有发生。
这是我的.desktop 代码:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/home/insertUsernameHere/volumeGUI/volumeGUI.py
Name=Volume GUI
Icon=/home/insertUsernameHere/volumeGUI/volumeGUI_Logo.png
请注意,当我
/home/insertUsernameHere/volumeGUI/volumeGUI.py
在终端中运行时,它运行正常。
编辑:这是我的 python 代码
#!/usr/bin/env python3
from tkinter import *
from tkinter.font import *
import subprocess
top = Tk()
top.resizable(False, False)
top.title("Python Volume Controller")
padx = 10
pady = 10
myFont = Font(family = "helvetica", size = 16, weight = "bold")
volumeTextVariable = StringVar()
currentVolumeText = Label(top, textvariable = volumeTextVariable, font = myFont)
currentVolumeText.grid(row = 1, column = 0, columnspan = 2, padx=padx, pady=pady)
volumeIncrement = 2
def volumeUp(volume):
if (volume + volumeIncrement) <= 100:
subprocess.call("pactl set-sink-volume 0 +" + str(volumeIncrement) + r"%", shell=True)
volumeTextVariable.set("Current Volume: " + getVolume() + r"%")
def volumeDown(volume):
if (volume - volumeIncrement) >= 0:
subprocess.call("pactl set-sink-volume 0 -" + str(volumeIncrement) + r"%", shell=True)
volumeTextVariable.set("Current Volume: " + getVolume() + r"%")
def getVolume():
try:
volume = subprocess.Popen("amixer get Master |grep % |awk '{print $4}'|sed 's/[^0-9]//g'", stdout=subprocess.PIPE, shell=True).communicate()[0].decode("utf-8")[:-1]
except:
volume = -404
return volume
volumeTextVariable.set("Current Volume: " + getVolume() + r"%")
volUpButton = Button(top, text = "Volume Up", command = lambda: volumeUp(int(getVolume())), font = myFont)
volDownButton = Button(top, text = "Volume Down", command = lambda: volumeDown(int(getVolume())), font = myFont)
volUpButton.grid(row = 2, column = 1, padx=padx, pady=pady)
volDownButton.grid(row = 2, column = 0, padx=padx, pady=pady)
top.mainloop()
编辑6:我.desktop
在命令行中运行该文件的 GIF gtk-launch volumeGUI.desktop
,它正常工作,但尝试从启动它时不工作Show Applications
屏幕截图
编辑7:从那时起,我改进了我的python代码:https://paste.ubuntu.com/p/QF6PVrSPSy/
编辑8:我按照建议进行了更改,当我用它运行它Exec=/home/insertUsernameHere/volumeGUI/volumeGUI.py
或者尝试从“显示应用程序”运行它时,日志文件是空的。Exec=bash -c "/home/insertUsernameHere/volumeGUI/volumeGUI.py 2>&1 > ~/logfile.txt"
gtk-launch
答案1
尝试将 Exec=/script.py 更改为 Exec=python3 /script.py
我有几个 Java 程序是通过 .desktop 文件运行的。有些甚至在启动时执行...抱歉这么短,我是通过手机发帖的。