linux gui开发工具2017,linux – 快速开发GUI命令行

This post似乎几乎要求你想要什么.

使用YAD的顶级解决方案似乎涵盖了您的要求.

例如以下一个班轮:

data="$(yad --title="Desktop entry editor" --text="Simple desktop entry editor" --form --field="Type:CB" --field="Name" --field="Generic name" --field="Comment" --field="Command:FL" --field="Icon" --field="In terminal:CHK" --field="Startup notify:CHK" "Application" "Name" "Generic name" "This is the comment" "/usr/bin/yad" "yad" FALSE TRUE --button="WebUpd8:2" --button="gtk-ok:0" --button="gtk-cancel:1")"

创建一个对话框,其中包含:

>文本字段

>下拉列表选择

>复选框

>按钮

看起来像:

输出全部放在yad stdout上,echo“$data”看起来像:

Application|Name|Generic name|This is the comment|/usr/bin/yad|yad|FALSE|TRUE|

现在,您可以使用某些cmdline工具(如cut或awk)“解析”输出:

a="$(echo "$data" | cut -d"|" -f1)"

b="$(echo "$data" | cut -d"|" -f1)"

然后只有应用程序逻辑给你.

Ubuntu安装:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager

sudo apt-get update

sudo apt-get install yad

编辑:专注于GUI到命令行选项的转换

收到downvote后,我觉得我的答案是错误的.他想要的关键是从GUI转换为cmdline选项界面.

我不知道现有的解决方案,而且由于7天之后,还没有回答,我们可以假设没有现有的解决方案.

因此,我们能做的最好的就是帮助OP自己创建一个解决方案.

我相信由于没有这么多的命令行选项案例,一个相当小的脚本就足够了.

这里有一个Python Tk示例

#!/usr/bin/env python

import Tkinter

import tkFileDialog

class Option(object):

def __init__(self,optype,name,widget=Tkinter.Entry):

self.optype = optype

self.name = name

if self.optype == 'switch':

self.widget = Tkinter.Checkbutton

else:

self.widget = widget

## INPUT -------------------------------------------------------

options = [

Option("key-value","--text="),Option("switch","-s"),Option("positional","pos0"),"pos1",tkFileDialog.askopenfilename),]

## END -------------------------------------------------------

def askopenfilename(filename):

filename.set(tkFileDialog.askopenfilename())

# Build command

def ok_func():

cmd = "cmd_line"

for option in options:

if option.optype == "key-value":

val = tkvars[option.name].get()

if val:

cmd += ' '

cmd += '%s"%s"' % (option.name,val)

elif option.optype == "switch":

cmd += ' '

if tkvars[option.name].get() == 1:

cmd += option.name

elif option.optype == "positional":

val = tkvars[option.name].get()

if val:

cmd += ' '

cmd += val

print cmd

tkvars = {}

app = Tkinter.Tk()

grid = Tkinter.Frame()

row = 0

# Build GUI

for option in options:

Tkinter.Label(grid,text=option.name).grid(row=row,column=0,sticky='W')

if option.widget == Tkinter.Entry:

tkvars[option.name] = Tkinter.StringVar()

widget = Tkinter.Entry(

grid,textvariable=tkvars[option.name]

)

elif option.widget == Tkinter.Checkbutton:

tkvars[option.name] = Tkinter.IntVar()

widget = Tkinter.Checkbutton(

grid,variable = tkvars[option.name],onvalue = 1

)

elif option.widget == tkFileDialog.askopenfilename:

tkvars[option.name] = Tkinter.StringVar()

widget = Tkinter.Button(

grid,text='Browse',command=lambda: askopenfilename(tkvars[option.name])

)

widget.grid(row=row,column=1,sticky='W')

row += 1

grid.pack()

Tkinter.Button(app,text="ok",command=ok_func).pack()

Tkinter.Button(app,text="quit",command=app.quit).pack()

app.mainloop()

要在Ubuntu 12.04上运行,首先要做:

sudo apt-get install python-tk

截图:

为截图生成的命令:

cmd_line --text="asdf" -s qwer /path/to/file

行为:

>如果–text =的值为空,则省略

>交换机只有在相应的复选框被选中时才会出现

如果你想在该代码之上实现一个新的功能,我建议你这样做here.如果它变得足够好,我们可以拆分成一个新的备份,并使其可以安装.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值