求助,Linux下的LVM管理有GUI界面的工具么

 我来答
蠢蠢欲动的心
2016-07-25 · TA获得超过3615个赞
知道大有可为答主
回答量:3623
采纳率:0%
帮助的人:2087万
展开全部
*使用GTK+和Glade快速开发Linux图形界面  **GTK+简介  ***基本概念  GTK+是一种用于创建图形界面的库.嗯,gnome用的就是它,不过并不是说只  有在gnome环境中才能用,只要系统上装有GTK的库(基本上有图形系统的个  人机都会有的啦)就能运行基于GTK的程序.除了UNIX-like平台,它还移植  到windows上,还有面向嵌入设备的framebuffer版本等等.  GTK依赖两个重要的库.一个是GLib,这并不是一个图形库,也和glibc不同  ,它大抵上提供了一些接口以屏蔽系统的不同,比如gint在哪里都是32bit  的,等等;另一个是GDK,它是一个设备无关的图形库,支持基本的画点,以及  与窗口管理器沟通等任务,由于GTK被设计成能在各个平台,而非仅仅在  XWindow环境下使用,所以这个库也是必要的.而在他们上面的GTK库,就提  供了一些widget---可以理解为控件啦,不过窗口也是一个widget的说,给  我们使用,并提供了包装良好的事件响应机制.  ***GTK+开发基础  要开发基于GTK的软件,必须先安装GTK+的开发包.检查是否正确安装的  法是在安装后执行``pkg-config--cflags--libsgtk+-2.0'',如果安装不正  确,会提示找不到相应的包.  GTK本身是基于C的库,当然也有C++等语言的wrap,但它的整个体系是面  向对象的.其最基本的类是GObject,GtkObject继承了它,GtkObject又派生  出我们最经常用到的GtkWidget,我们使用的所有窗体控件都派生于它.于是,  在C环境中我们就要手动处理这些类转换,GTK和底层的GLib等提供了一种  统一的转换方法,比如把类型为GtkWidget*的button转换成GtkButton形,  写法是:GTK_BUTTON(button),就酱子.  我不打算在这里列一个GTK的helloworld占页面,这个程序随便google一  下就能找到.我们可以自己想一想一个图形界面应该如何建立.  首先我们要进行初始化,GTK提供了gtk_init()作为初始化,它检查程序参数  中的一些特定部分,进行自己的设置.调用方法如下:  gtk_init(&argc,&argv);  将argc和argv传指针的目的是gtk_init会对他们进行加工,把GTK自己  用到的一些参数抽取出来.  接着,我们必须要创建这些控件吧,GTK中,创建一个控件会返回一个  GtkWidget类型(或它的派生类)的指针,所有创建控件的函数的格式是  gtk_控件类型_new(参数表).比如创建一个窗口的写法是:  GtkWidget*window=gtk_window_new(GTK_WINDOW_TOPLEVEL);  然后,我们要设定事件响应函数,GTK中的事件叫做signal.GTK的事件响应  函数接口应该是类似这样的  void  destroy(GtkWidget*widget,gpointerdata)  我们把它连入到一个控件中的方法是这样的  g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(destroy),NULL);  应该很好理解吧.  我们创建的咚咚,要说明他们的位置和包含关系,GTK用container来解决这  个问题,它可以保证在窗口缩放的时候控件的摆放依然合理,container的具体  使用不详细说,后面经常要跟container打交道,但基本上不用管C代码,嗯  .不过其实我们的任何的可视控件都继承自container,比如button也是一个  container,它很多时候装的是一个GtkLabel,也就是用来显示纯文本的控件,  于是我们就能见到一个文本按钮,嗯.使用container的方法如下.  gtk_container_add(GTK_CONTAINER(window),button);  这样button就会占满整个window的控件,我们后面可以看到可以用  GtkVBox,GtkHBox等container分隔窗体.  好了,我们可以准备启动程序了,我们可以用gtk_widget_show()来显示各个  控件,然后我们就应该进入到所谓的事件响应循环了,这就要使用gtk_main().  在程序运行过程中,我们要操纵控件,比如说我们要在一个entry控件(文本框  )中取出其中的文字,这样的操作使用gtk_控件类型_动作(对象,参数)的形  式完成的,比如刚才所说的任务,做法是gtk_entry_get_text(entry).  顺便讲讲GTK程序的退出,关闭GTK的窗口(即使是所有窗口)也不代表程序  退出,因为那说到底只是一个界面而已,我们当然可以使用exit()的自爆法退  出,但最好还是给GTK一个料理后事的机会,在主窗口的destroy事件响应函  数上用gtk_main_quit()就好了.  编译GTK程序的法也很简单.  gcc-ofoofoo.c`pkg-config--cflags--libsgtk+-2.0`  **使用Glade快速定制用户界面  好了,说了一堆有的没的,如果我现在说我上面说的那一堆中的大部分我们都不  会用到,是不是觉得偶很歉扁?前面的介绍只是给大家GTK这个库的一些基本  概念,概念就好了,我们倒真的不用拿这些来编程的.想想,一个复杂一点的界  面,十几个控件,再加上各种各样的container,自己挂事件,再加上超常的命  名,想想都恐怖.  这时候,Glade横空出世了!这是一个可视化的界面编辑器---但它仅仅是一  个界面编辑器而已,甚至连代码编辑框也没有给出.先不管了,打开glade(安  装省略,饶了我把,记得装libglade-dev),应该很好懂了,指指点点就能弄好  一个界面,然后在属性窗的信号一栏中选取需要的信号,设定响应函数,非常好  弄.  玩了几分钟,问题来了,怎么把它变为程序啊?提供类似功能的IDE如  BorlandC++Builder,在点击创建新控件的时候,我们能即使在代码窗看到自  动生成的代码,Glade也可以采用这种形式,在设计好界面并保存后,按一下主  窗口的build按钮,它就自动生成了界面代码,根本不用自己写的.打开代码  目录,callbacks.c里已经有自动创建的事件响应的空函数,在里面填处理,然  后configuremake就行了.  但是,这样的开发方式还是有问题的.第一,自动生成的代码非常复杂,可是很  多时候我们还是不能完全不看它,处理和界面是混在一起了,理解他们变得困难  ;其二,由于以上的原因,修改界面变得非常痛苦;其三,它给你生成那堆有的  没的配置文件不一定是你想要的.  因此glade提供了另一种方法,glade编辑所得的.glade文件是一个XML文  件,其实它已经完整地描述了界面,我们能否采用一种简单的方式直接载入,配  置它呢.这样做,我们的代码中就真真正正地去处了烦人的界面生成代码,而专  注于处理部分了.  libglade正是由于这个而来,它能很好地完成上面所说的工作.当我们用  glade创建了一个.glade界面后,用这种方法我们就可以建立界面,运行程序  了.  #include  #include  GladeXML*GUI;  int  main(intargc,char**argv)  {  gtk_init(&argc,&argv);  /*loadtheinterface*/  GUI=glade_xml_new("frame.glade",NULL,NULL);  /*connectthesignalsintheinterface*/  glade_xml_signal_autoconnect(GUI);  /*starttheeventloop*/  gtk_main();  return0;  }  剩下的事情很简单,如果你的button的clicked控件有一个响应函数  on_button_clicked,你写  void  on_button_clicked(GtkWidget*widget,gpointerdata)  {  //balabalabala  }  就可以了.所以,上面讲的一堆创建界面的方法,其实大部分时候都用不着.  由于用到了libglade,我们的编译方法变为  gcc-ofoofoo.c`pkg-config--cflags--libslibglade-2.0`  **开发举例  一个很简单的程序,密码学对称加密算法要用到的,如果说是界面,就是三个文  本框:明文,密码,密文,三个按钮,加密,解密,清除,完了.为了实验众多  的算法,我们加了一个下拉窗口,用来选择算法.我把它设计成一个wrapper  和框架,它不实现任何算法,只是在界面中获取用户输入,调用外部程序,并把  结果显示出来而已.这样,实际的算法实现可以用纯C写的文本界面程序完成,  移植起来很方便,在windows随便做个一样的界面做前端就整个移植过去了.  于是,我们需要的窗体元素是GtkEntry,GtkComboBoxEntry,GtkButton,查查  手册,我们用到的界面相关的函数只有以下几个:  -gtk_entry_get_text(),用于获取文本框输入  -gtk_entry_set_text(),用于在文本框中显示结果  -gtk_combo_box_get_active_text(),用于在ComboBoxEntry(派生自  ComboBox)取出用户选中的算法.  另一个问题是,他们都需要相应的对象指针做参数,这应该怎样获得呢?我们使  用glade_xml_get_widget(GUI,"控件名")就能取得控件了.
aresljc
2021-03-10
知道答主
回答量:2
采纳率:0%
帮助的人:973
展开全部
前面的机器人回答的什么玩意。
想要用gui管理lvm可以试试visual lvm,它的前端基于http协议开发。不只是通过gui管理lvm,还支持远程管理,而且可以在任何平台上管理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式