如何把命令行程序封装成有GUI的程序

如何把命令行程序封装成有GUI的程序,第1张

*** 作系统(无论Linux还是Windows)有一种“管道”的概念,可以把一个程序的标准输入/输出改到其他的地方。你说的那些GUI外壳,就是为命令行程序创建了一个管道,标准输入和标准输出被改到了GUI外壳程序的内部。所以就不会再d出命令行窗口了。GUI外壳会根据你在窗口上的 *** 作,通过管道,向命令行程序发送指令,就像你手动在命令行窗口上敲命令一样。命令行程序的标准输出也会通过管道传送到GUI外壳的内部,加以处理后在窗口上显示个给你

(1)图像读取及显示创建读图功能的按钮如图6-8所示。如图6-8所示,首先建立一个GUI界面,命名为BwImage_Show。在界面左侧控件栏中单击PushButton,在界面上创建一个按钮来实现读图功能。再单击Axes,在界面上创建一个坐标轴用来显示图像。然后按照上文的介绍,修改按钮的控件属性,将其“string”属性修改为ReadImage,将其“Tag”属性修改为Read_image。之后右击ReadImage按钮,选择ViewCallback进入对应的回调函数。这样,就可以在其对应的函数下添加实现读图功能的程序段了:

%---ExecutesonbuttonpressinRead_imagefunctionRead_image_Callback(hObject

其实无论在什么平台下,GUI应用程序的基本开发方法都是相似的。一般都包括下面这样四个步骤:

①创建容器

首先要创建一个GUI应用程序,需要创建一个用于容纳所有其它GUI组件元素的载体,Java中称为容器。典型的包括窗口(Window)、框架(Frame/JFrame)、对话框(Dialog/JDialog)、面板(Panel/JPanel)等。只有先创建了这些容器,其它界面元素如按钮(Button/JButton)、标签(Label/JLabel)、文本框(TextField/JTextField)等才有地方放。

②添加组件

为了实现GUI应用程序的功能,为了与用户交换,需要在容器上添加各种组件/控件。这需要根据具体的功能要求来决定用什么组件。例如,如果需要提示信息,可用标签(Label/JLabel);如果需要输入少量文本,可用文本框(TextField/JTextField);如果需要输入较多文本,可用文本区域(TextArea/JTextArea);如果需要输入密码,可用密码域(JPasswordField)等等。

③安排组件

与传统的Windows环境下的GUI软件开发工具不同,为了更好地实现跨平台,Java程序中各组件的位置、大小一般不是以绝对量来衡量,而是以相对量来衡量。例如有时候,程序的组件的位置是按"东/East"、"西/West"、"南/South"、"北/North"、"中 /Center"这种方位来标识的。因此,在组织界面时,除了要考虑所需的组件种类外,还需要考虑如何安排这些组件的位置与大小。这一般是通过设置布局管理器(Layout Manager)及其相关属性来实现的。事实上上述按方位来安排组件就是采用了Java中多种布局管理器里的BorderLayout布局管理器。

④处理事件

为了完成一个GUI应用程序所应具备的功能,除了适当地安排各种组件产生美观的界面外,还需要处理各种界面元素事件,以便真正实现与用户的交换,完成程序的功能。在Java程序中这一般是通过实现适当的事件监听者接口来完成的。比如如果需要响应按钮事件,就需要实现 ActionListener监听者接口;如果需要响应窗口事件,就需要实现WindowListener监听者接口。

纯C的很少,windows32

sdk和linux的gtk是为数不多的2个库。

现代基本没有用C开发gui的,C++是更好的选择,像qt

mfc比win32好用得多。

开发效率更高的是python,tkinter

wxwidget

pyqt都很方便

这个不难。

class

mylabel

:

public

cstatic

{

private:

cedit

m_edit;

public:

void

initedit(){

m_editcreate(this,

rc,

)

}

}

那就可以直接拖一个静态static控件,关联变量后把变量类型修改为mylabel,然后在oninitdialog函数中调用initedit去创建edit。

使用C语言编写GUI的软件,一般需要GUI相关的库,比如QT库,比如Windows上的SDK库。需要专门找这方面的资料学习。以Windows为例,写一个最简单的hello world,以下程序在vc60中编译通过,实际上只是调用了一个SDK中的MessageBox函数。

12345678

#include <tcharh>#include <windowsh>#pragma comment(linker ,"/entry:mainCRTStartup /subsystem:windows")int main(){MessageBox(0, _T("hello world\n"), _T("Test"), MB_OK);return 0;}

1、当然可以,C的gui编程基本上是学习 *** 作系统的API调用了,可以看看Windows API编程中的与窗体相关部分,Linux中也是类似的,建议在Windows中学习,毕竟Linux用作服务器的更多,很多是不带有图形化界面和相关类库的。

2、另外,用C去做gui程序真的不是一个很好的选择,明白基本原理,能够做一些简单程序即可,复杂的图形化界面开发采用MFC、C#、VB、Java等框架或者语言,能够更加高效,降低开发难度。程序员应该站在巨人的肩膀上前进,用合适的工具做合适的事情。

以上就是关于如何把命令行程序封装成有GUI的程序全部的内容,包括:如何把命令行程序封装成有GUI的程序、GUI实现过程是怎样的、Java实现GUI编程基本方法都有那些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9694439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存