文件管理 · 2022年8月10日

xlib教程|linux中源代码包安装的基本步骤是什么

⑴ 如何做远程进程管理器,悬赏50

根窗口,父窗口和子窗口每一个屏幕上都有一个根窗口。根窗口总是占据整个屏幕尺寸。这个窗口无法被销毁,改变尺寸或者图标化。当一个应用程序创建了一些窗口,它先创建至少一个顶层窗口。在被映射到屏幕上后,这个窗口成为一个根窗口的直接子窗口。这个窗口在被映射到屏幕上之前,窗口管理器被告知什么发生了,然后,窗口管理器获得特权成为新顶层窗口的"父亲"。这通常被用来增加一个会包含新窗口的窗口和绘制框架,标题栏,系统菜单等。 一旦一个顶层窗口(当然它实际上不是一个顶层窗口,因为窗口管理器已经成为它的父窗口了)被创建了,应用程序可以在它里面创建它的子窗口。一个子窗口只能在它的父窗口里显示 – 如果试图把它移动到外面,出去的部分将被父窗口的边框给切掉。任何窗口都可以包含一个以上的子窗口,在这种情况下,这些子窗口将被放置在应用的内部栈上。当一个顶层窗口被打开 – 它的所有子窗口也将随着它被打开。以下例子演示如何在一个给定的叫"win"的窗口里打开一个子窗口。 Lets see how to create a child window inside a given window 'win'. /* this variable will store the handle of the newly created child window. */Window child_win;/* these variables will store the window's width and height. */int child_win_width = 50;int child_win_height = 30;/* these variables will store the window's location. *//* position of the child window is top-left corner of the *//* parent window. – 0,0. */int child_win_x = 0;int child_win_y = 0;/* create the window, as specified earlier. */child_win = XCreateSimpleWindow(display, win, child_win_x, child_win_y, child_win_width, child_win_height, child_win_border_width, BlackPixel(display, screen_num), WhitePixel(display, screen_num));——————————————————————————–事件传递先前我们已经讨论了事件传递 – 如果一个窗口收到了一个它不处理的事件 – 它就把该事件发到它的父窗口去。如果那个父窗口也不处理该事件 – 那个父窗口就把该事件发到它的父窗口上去,接下来依此类推。这种行为对一个简单的Xlib程序是没什么用的,但对于抽象级更高的绘图库是有用的。这些抽象级更高的绘图库通常把某个特定窗口的事件联系到一个函数上去。在这种情况下,发送事件到特定的窗口并用适当的函数来处理就非常有用。 ——————————————————————————–与窗口管理器进行交互在我们察看了如何创建和绘制窗口之后,我们回过头来看一下我们的窗口是如何与它们的环境 – 整个屏幕和其它窗口进行交互的。首先,我们的程序需要与窗口管理器进行交互。窗口管理器有责任装饰被绘制的窗口(例如增加框架,一个图标化的按钮,一个系统菜单,一个标题栏),同时在窗口被图标化时绘制图标。它还管理屏幕里的窗口排列顺序以及其它可管理的任务。我们需要给它各种提示以让它以我们需要的方式来对待我们的窗口。——————————————————————————–窗口属性许多与窗口管理器交流的参数都通过叫"properties"的数据来传递。X服务器把这些属性贴到各种窗口上,同时把它们存储成一种可以被各种架构的系统所能读取的格式(记住,一个X客户程序可能运行在一台远程主机上)。属性可以是各种类型 – 数字,字符串,等等。大部分的窗口管理器提示函数使用文本属性。一个叫XStringListToTextProperty()的函数可以把C语言的字符串转换成X文本属性,转换后的结果就可以传给各色Xlib函数。以下是一个例子:/* This variable will store the newly created property. */XTextProperty window_title_property;/* This is the string to be translated into a property. */char* window_title = "hello, world";/* translate the given string into an X property. */int rc = XStringListToTextProperty(&window_title, 1, &window_title_property);/* check the success of the translation. */if (rc == 0) { fprintf(stderr, "XStringListToTextProperty – out of memory\n"); exit(1);}函数XStringListToTextProperty()接收一个C字符串矩阵(在我们的例子里只有一个)和一个指向XTextProperty型变量的指针为参数,合并C字符串里的属性把值传到XTextProperty型变量里。成功时它返回一个非0值,失败时返回0(例如,没有足够的内存来完成操作)。 ——————————————————————————–设置窗口名字和图标名字我们需要做的第一件事就是给我们的窗口设置名字。使用函数XSetWMName()。窗口管理器也许会把这个名字显示在窗口标题栏或是在任务栏上。该函数接受3个参数:一个指向显示的指针,一个窗口句柄,和一个包含有我们设置的名字的XTextProperty变量。下面是我们如何做的: /* assume that window_title_property is our XTextProperty, and is *//* defined to contain the desired window title. */XSetWMName(display, win, &window_title_property);为了设置我们的窗口的图标化名字,我们将用相同的方式使用函数XSetWMIconName()。/* this time we assume that icon_name_property is an initialized *//* XTextProperty variable containing the desired icon name. */XSetWMIconName(display, win, &icon_name_property);——————————————————————————–设置满意的窗口尺寸在各种情况下,我们希望让窗口管理器知道我们指定的窗口尺寸以及只允许用户在我们的限定下改变窗口尺寸。例如,一个终端窗口(像xterm),我们总是要求我们的窗口可以包含全部的行和列,因此我们就不能从中间截断我们的显示。在其它情况下,我们不希望我们的窗口可以被改变尺寸(像绝大部分的对话框窗口),等等。我们可以依赖窗口管理器的这个尺寸信息,虽然它可能被简单的忽视掉。我们首先需要创建一个数据结构来包含该信息,填充必要的数据,然后使用函数XSetWMNormalHints()。下面是如何操作: /* pointer to the size hints structure. */XSizeHints* win_size_hints = XAllocSizeHints();if (!win_size_hints) { fprintf(stderr, "XAllocSizeHints – out of memory\n"); exit(1);}/* initialize the structure appropriately. *//* first, specify which size hints we want to fill in. *//* in our case – setting the minimal size as well as the initial size. */win_size_hints->flags = PSize | PMinSize;/* next, specify the desired limits. *//* in our case – make the window's size at least 300×200 pixels. *//* and make its initial size 400×250. */win_size_hints->min_width = 300;win_size_hints->min_height = 200;win_size_hints->base_width = 400;win_size_hints->base_height = 250;/* pass the size hints to the window manager. */XSetWMNormalHints(display, win, win_size_hints);/* finally, we can free the size hints structure. */XFree(win_size_hints);请查看你的手册来获取尺寸提示的完整信息。 ——————————————————————————–设置各种窗口管理器提示使用函数XSetWMHints()还可以设置许多其它的窗口管理器提示。该函数使用一个XWMHints结构来传递参数给窗口管理器。下面是例子: /* pointer to the WM hints structure. */XWMHints* win_hints = XAllocWMHints();if (!win_hints) { fprintf(stderr, "XAllocWMHints – out of memory\n"); exit(1);}/* initialize the structure appropriately. *//* first, specify which hints we want to fill in. *//* in our case – setting the state hint as well as the icon position hint. */win_hints->flags = StateHint | IconPositionHint;/* next, specify the desired hints data. *//* in our case – make the window's initial state be iconized, *//* and set the icon position to the top-left part of the screen. */win_hints->initial_state = IconicState;win_hints->icon_x = 0;win_hints->icon_y = 0;/* pass the hints to the window manager. */XSetWMHints(display, win, win_hints);/* finally, we can free the WM hints structure. */XFree(win_hints);请查阅手册以获取全部选项的详细信息。——————————————————————————–设置一个程序的图标在用户图标化了我们的程序的时候,为了让窗口管理器能为我们的程序设置一个图标,我们使用上面提到的函数XSetWMHints。但是,首先我们需要创建一个包含有图标数据的像素图。X服务器使用像素图来操作图片,将在后面介绍它的详细使用。在这里,我们只是向你展示如何为你的程序设置图标。我们假设你已经得到了一个X bitmap格式的图标文件。教程为了方便提供了一个图标文件"icon.bmp" ,下面是代码: /* include the definition of the bitmap in our program. */#include "icon.bmp";/* pointer to the WM hints structure. */XWMHints* win_hints;/* load the given bitmap data and create an X pixmap containing it. */Pixmap icon_pixmap = XCreateBitmapFromData(display, win, icon_bitmap_bits, icon_bitmap_width, icon_bitmap_height);if (!icon_pixmap) { fprintf(stderr, "XCreateBitmapFromData – error creating pixmap\n"); exit(1);}/* allocate a WM hints structure. */win_hints = XAllocWMHints();if (!win_hints) { fprintf(stderr, "XAllocWMHints – out of memory\n"); exit(1);}/* initialize the structure appropriately. *//* first, specify which size hints we want to fill in. *//* in our case – setting the icon's pixmap. */win_hints->flags = IconPixmapHint;/* next, specify the desired hints data. *//* in our case – supply the icon's desired pixmap. */win_hints->icon_pixmap = icon_pixmap;/* pass the hints to the window manager. */XSetWMHints(display, win, win_hints);/* finally, we can free the WM hints structure. */XFree(win_hints);你可以使用程序例如"xpaint"来创建使用X bitmap格式的文件。 我们提供文件simple-wm-hints.c来总结这一节,这段程序包括创建一个窗口,设置窗口管理器提示为在上面显示,以及一个简单的事件循环。它允许用户调整参数以察看提示是如何影响程序的行为的。这可以帮助你了解X程序的可移植性。 ——————————————————————————–简单窗口操作对我们的窗口,我们可以做更多的一些事情。例如,改变它们的尺寸,打开或关闭它们,图标化它们等。Xlib提供了一系列函数来完成上面提到的功能。 ——————————————————————————–映射和解除一个窗口的映射首先我们对窗口作的一对操作是映射它到屏幕上去和解除它的映射。映射一个窗口的操作将会使一个窗口显示在屏幕上,如我们在简单窗口程序例子里所看到的。解除映射操作将会把窗口从屏幕里移除出去(虽然作为一个逻辑结点它仍然在X服务器里)。这个可以提供产生窗口被隐藏(映射解除)和再显示(映射)的效果。例如,我们的程序里有一个对话框,我们不需要每次在需要它显示的时候都重新创建一个窗口,我们只是以映射解除的状态创建一次,在用户需要的时候简单的把它映射到屏幕上去就行了。这比每一次都创建它和销毁它要快多了,当然,这需要在客户端和服务器端同时使用更多的内存。你应该还记得映射操作是使用函数XMapWindow()。映射解除操作是使用函数XUnmapWindow(),下面是如何使用它们: /* make the window actually appear on the screen. */XMapWindow(display, win);/* make the window hidden. */XUnmapWindow(display, win);除非整个窗口被其它窗口给覆盖了,一个暴露事件将在映射操作后发给应用程序。 ——————————————————————————–在屏幕移动一个窗口我们想做的另一个操作是在屏幕里移动窗口。使用函数XMoveWindow()可以完成这个操作。它接受窗口的新坐标,使用的方法和函数XCreateSimpleWindow()是一样的。一下是调用的例子: /* move the window to coordinates x=400 and y=100. */XMoveWindow(display, win, 400, 100);注意当窗口移动的时候,窗口的部分可能后被遮住或被重新暴露,这样我们就可能会收到暴露事件。 ——————————————————————————–改变窗口尺寸接下来我们要做的是改变一个窗口的尺寸。使用函数XResizeWindow()可以完成这个操作: /* resize the window to width=200 and height=300 pixels. */XResizeWindow(display, win, 200, 300);我们可以合并移动和改变尺寸操作为一个操作,使用函数XMoveResizeWindow():/* move the window to location x=20 y=30, and change its size *//* to width=100 and height=150 pixels. */XMoveResizeWindow(display, win, 20, 30, 100, 150);——————————————————————————–改变窗口们的栈顺序 – 提升和降低到目前为止我们已经改变了一个单独窗口的许多属性。接下来我们将看看窗口之间的属性。其中一个就是它们的栈属性。也就是说,窗口是如何在屏幕上排列的。最前面的窗口我们说它是在栈顶,最后面的窗口我们说它是在栈底。下面演示我们如何改变窗口的栈顺序: /* move the given window to the top of the stack. */XRaiseWindow(display, win1);/* move the given window to the bottom of the stack. */XLowerWindow(display, win1);——————————————————————————–图标化和恢复一个窗口在这里我们将要讲解的最后一个操作就是如何把一个窗口变换成图标状态和恢复它。使用函数XIconifyWindow()来把一个窗口变换成图标状态,使用函数XMapWindow()来恢复它。为了帮助理解为什么图标化函数没有一个对应的反函数,我们必须理解当一个窗口被图标化时,实际发生的事情是那个窗口被解除映射了,而它的图表被映射了。结果,如果想使哪个窗口在出现,我们只需要简单的映射它一下就行了。图标实际上是另一个窗口,只不过它与我们的窗口有非常强的联系关系。下面演示如何图标化一个窗口并恢复它: /* iconify our window. Make its icon window appear on the same *//* screen as our window (assuming we created our window on the *//* default screen). */XIconifyWindow(display, win, DefaultScreen(display));/* de-iconify our window. the icon window will be automatically *//* unmapped by this operation. */XMapWindow(display, win);——————————————————————————–获得一个窗口的信息与可以为窗口设置许多属性相同,我们也可以要求X服务器提供这些属性的值。例如,我们可以检查窗口现在在屏幕里什么位置,当前尺寸,是否被映射了等等。函数XGetWindowAttributes()可以帮助我们获取那些信息: /* this variable will contain the attributes of the window. */XWindowAttributes win_attr;/* query the window's attributes. */Status rc = XGetWindowAttributes(display, win, &win_attr);结构体XWindowAttributes包含了很多数据域,下面是它的一部分:int x, y; 窗口的位置,相对于它的父窗口。 int width, height; 窗口的宽和高(单位,像素)。 int border_width 窗口的边框宽度 Window root; 根窗口,也就是我们的窗口在那个窗口里被显示了。 这个函数有些问题,就是它返回的是相对于父窗口的位置。这对一些窗口的操作(例如XMoveWindow)是没有什么意义的。为了解决这个问题,我们需要使用两步的操作。首先,我们找出窗口的父窗口的ID。然后我们在使用它来确定窗口相对于屏幕的坐标。我们使用两个前面没有介绍的函数来完成这个计算,XQueryTree()和XTranslateCoordinates()。这两个函数的功能超出了我们的需要,所以我们只关注我们需要的: /* these variables will eventually hold the translated coordinates. */int screen_x, screen_y;/* this variable is here simply because it's needed by the *//* XTranslateCoordinates function below. For its purpose, see the *//* manual page. */Window child_win;/* this variable will store the ID of the parent window of our window. */Window parent_win;/* this variable will store the ID of the root window of the screen *//* our window is mapped on. */Window root_win;/* this variable will store an array of IDs of the child windows of *//* our window. */Window* child_windows;/* and this one will store the number of child windows our window has. */int num_child_windows;/* finally, make the query for the above values. */XQueryTree(display, win, &root_win, &parent_win, &child_windows, &num_child_windows);/* we need to free the list of child IDs, as it was dynamically allocated *//* by the XQueryTree function. */XFree(child_windows);/* next, we make the coordinates translation, from the coordinates system *//* of the parent window, to the coordinates system of the root window, *//* which happens to be the same as that of the screen, since the root *//* window always spans the entire screen size. *//* the 'x' and 'y' values are those previously returned by the *//* XGetWindowAttributes function. */XTranslateCoordinates(display, parent_win, root_win, win_attr.x, win_attr.y, &screen_x, &screen_y, &child_win);/* at this point, screen_x and screen_y contain the location of our original *//* window, using screen coordinates. */你可以看到Xlib有时候会让我们处理问题时变得很麻烦。 以上的内容可以参考例子window-operations.c 程序。——————————————————————————–

⑵ 我想学EXCEL的VBA基础知识

VBA概述:VBA是Visual Basic For Application的缩写,是VB在office中的运用。是基于Visual Basic For Windows发展而来的,VB For Windows是Microsoft于1992年推出的开发Windows应用程序的程序设计语言,由于基语法简单,易学易用,所以深受用户的欢迎。而VBA和VB For Windows大体相似。 在Office2000之前,VBA在Word,Excel,Access等Office系统软件中的运用有些有同,但是到Office2000就统一起来了。Excel是第一个包含有VBA的应用程序,自Office2000以后,Eexel,Word,PowerPoint,Access中已经有了统一标准的宏语言VBA,其中Excel和Access的VBA最为成熟。 在Excel中VBA程序即可以存放有.xls中,也可以单独以文本形式存放。对VBA的学习,用户首先必须VB有一定的了解(不过不必很专业,毕竟经常用Excel的用户一般是办公人员,不可能是专业编程人员),然后结合宏记录器学习。因为,宏记录器可以记录宏,用户可以非常清楚了然VBA的很多知识。另外,如果不是功能很强大的VBA程序,那么用宏记录器就足够了。打开密码记录器的方法,通过“工具->宏->录制新宏”。另外,用户可能用“工具->宏->宏…”来管理宏。用“工具->宏->VB 编辑器”或Alt+F11可以打开VB编辑器,在VB编程器,可以很方便地整个VB工程进行管理,可以方便地编写VBA代码,另外,用户可以再点击Alt+F11切换到Excel窗口。 VBA的使用过程: 1、创建一个Excel文件。 2、创建一个控件,然后双击控件或是右击该控件,点击“查看代码”,就可以对该控件的某个事件,如click,keydown等。进行编写执行代码了。创建控件的方法是,点击“视图->工具栏->控件工具箱”,打开“控件工具箱”栏,然后就可以直接拖动某个控件到Excel单元格中去。在Excel中窗口,添加的控件一般是处于执行状态的,如果要对这个控件进行编辑,除了第一次建立的时候可以对它进行属性编辑外,打开“控件工具箱”,也可以使控件处于编辑状态,如果还不行,可以再添加一个控件,然后已有的控件绝对会处于编辑状态。当然,对控件修改完毕后,别忘了删除刚才新添加的没有用的控件。在编辑状态中,你可以右击该控件,点击“属性”,那么就可以打开属性窗口,在这个窗口里,你可以很方便的对这个控件的名字,标题,大小等属性进行编辑。 3、手动或用宏记录器对该控件的某个事件进行编码。宏记录器简单易用,不过强大的功能还是必须手动编写VBA。 VBA对象介绍: 编写VBA代码的最关键在于灵活运用VBA对象,对这些VBA对象的属性或方法进行操作。另外,你也可以创建自定义函数,来对某些操作进行封装。既然是VBA,编码风格当然和VB相同,如果会VB,那么只要对VBA的对象比较了解,就可以编写功能强大的VBA程序;同样,如果不会VB,那么,只需要了解VBA的对象就够了,因为它比较简单易学。 以下分别讨论VBA各对象对其属性与方法: 在一些可以包含其他对象的窗口对象中,有几个特殊的属性,其属性值是当前活动对象,对它们,可以直接引用。表1 一些特殊的属性 对象名 含义ActiveWorkbook 当前工作簿,即如果你打开了几个Excel文件,那么你当然正在编辑的Excel文件即ActiveWorkbookActiveSheet 当前工作簿中的当前工作表,即当前编辑的Excel文件中正在编辑的工作表ActiveCell 当前工作表中活动单元格ActiveChart 当前工作簿中的活动图表Selection 当前被选定的对象 下面详谈各对象及它们的属性和方法 一、Application对象 此对象指Excel应用程序的工作环境。<一>属性 1.Caption属性 含义:Excel应用程序标题栏显示的文本。 举例:Application.caption=“船员管理系统”,如赋值Empty,则恢复Excel默认的标题栏。2.Cursor属性 含义:Excel中鼠标的形状。 表2 Cursor属性属性值 鼠标形状xlDefault 缺少型值,鼠标呈缺少形状xlWait 等待型值,鼠标呈不断翻转的沙漏形状xlNorthwestArrow 箭头型值,鼠标呈标准箭头形状xlIBeam 文本型值,鼠标呈“I”字形以等待用户输入文本 操作:Application.Cursor=xlWait等。 3、DisplayAlerts属性 含义:用以确定是否显示系统的应用提示和警告信息,如果不想显示,则把些属性设为false,反之亦然。4、DisplayFormulaBar属性 含义:用以确定是否显示公式编辑栏 5、DisplayScrollBars属性 含义:用以确定是否显示Excel的滚动条 6、DisplayStatusBar属性 含义:用以确定是否显示Excel的状态栏 7、EnableCancelkey属性 含义:用以确定是否允许用户中断正在执行着的VBA程序。缺省情况下,在VBA程序执行过程中,用户按下Ctrl+Break能够中断VBA程序的执行。此时此属性即值为xlInterrupt。若要禁止中断VBA程序,由赋值为xlDisabled;若需要VBA执行过程中遇到错误进中止,由赋值为xlErrorHandler8、ScreenUpdating属性 含义:用以确定是否显示VBA程序的中间运算结果。 9、StatusBar属性 含义:设置状态栏的文本 10、ActiveWorkbook属性 含义:如表1介绍。 11、ActiveSheet 含义:如表1介绍。 12、ActiveCell属性 含义:如表1介绍。 13、ThisWorkBook属性 含义:用以返回正在执行着VBA程序所在的工作簿对象。这不是当前工作簿。例如有多个工作簿打开时,ActiveWorkbook属性返回当前工作簿对象,ThisWorkbook返回正在运行着VBA程序所在工作簿对象。14、PathSeparator属性 含义:返回文件文件路径分隔符“\”,该属性是一个只读属性。 举例:Dim strPath as String strPath=Application.ThisWorkbook.Path&Application.PathSeperator Workbooks.Open strPath&"myExcel.xls" 15、UserName属性 含义:设置当前用户名称。缺省用户是由Excel选项对话框的“常规”选项卡中“用户姓名”决定的。用户可以从“工具”菜单中选择“选项”命令来打开选项并在“常规”选项卡的“用户姓名”文本框中重新设置缺省的用户名称。<二>方法 1、Calculate方法 含义:对Excel打开的工作簿中所有的公式进行重新计算。 2、Goto方法 含义:选择工作簿中的一个Range对象或一个VBA过程,格式如下: Application.Goto Reference,Scroll Reference参数表示Goto方法的目的地,Scroll参数若为True,滚动条滚动以使Range对象出现在工作簿窗口左上角,为False,当前工作簿窗口不属性变化。缺省值为Galse 举例:Application.Goto Range("C3"),True 3、InputBox方法 含义:用于打开一个输入对话框,允许用户输入数据。格式如下: Application.InputBox(prompt,title,left,top,helpFile,helpContextID,type) prompt参数 用于设置输入对话框的提示信息 title参数 用于设置输入对话框的标题文字 default参数 用于设置输入对话框的缺省输入值 left和top参数 用于设置输入对话框左上角的坐标值 helpFile参数 用于设置输入对话框在线帮助的名称 helpContextID参数 用于设置输入对话框在线帮助主题的上下文标识号 type参数 用于设置输入对话框输入数据的类型。缺省情况下,为文本型 举例:UserValue=Application.InputBox("请输入数据","数据输入",Type:=7) 4、Onkey方法 含义:按下某个或组合键时执行一段VBA代码。自己尝试一下就知道了,也可看一下VB编辑器的提示(即输入Applicatio.Onkey后,VB编辑器弹出的下拉提示。 二、Workbooks对象集 当前所有打开的工作簿对象的集合 <一>属性 1、Count属性,只读,返回Excel打开的工作簿数 <二>方法 1、Add方法,向工作簿对象集中一个新的工作簿,相当于“文件->新建”命令。格式如下: Workbooks.Add Template 2、Open方法,打开一个指定的工作簿。格式看一下VBA编辑器中的提示就行,太累了,不想写得这么全。 3、Close方法,关闭一个工作簿文件 三、Workbook对象 代表一个独立的工作簿文件 <一>属性 1、ActiveSheet属性,返回当前工作簿中的活动工作表对象 2、Author属性,返回或设定工作簿的作者姓名,由此确定工作簿的所有者 3、Saved属性,用于瓢工作簿文件是否做过修改。 <二>方法 1、Activate方法,用于霜一个工作簿为当前活动工作簿,如,Workbooks("myOffice.xls").Activate 2、Close方法,用于关闭指定的工作簿 3、Save方法,用于保存指定的工作簿 4、SaveAs方法,用于另存为指定的工作簿 四、Worksheets对象集 代表当前工作簿所有的工作表(Worksheet)的集合。 <一>属性 1、Count属性,返回当前工作簿中的的工作表的数量 <二>方法 1、Add方法,向工作表对象集中添加一个新的工作表对象,格式如下: Worksheets.Add Before,After,Count,Type Before和After参数指哪一个工作表之前或之后插入新工作表。取值为Worksheet 如:Worksheets.Add Before:=Worksheets("Sheet2"),则相当于在Sheet2工作表之前插入了一个新的工作表 五、Worksheet对象 代表工作簿一个独立的工作表。 获取某个工作表,可以用Worksheets("办公费用"),也可以用Worksheets(3)之类的语句 <一>属性 1、Name属性,设置或返回工作表对象的名称 2、Visible属性,确定是否隐藏某个工作表 <二>方法 1、Calculate法,对指定的工作表中的所有公式进行重新计算 2、Copy方法,用于复制指定的工作表,并放置在指定的位置,实际是一个复制与粘贴并重的函数, 格式:Worksheet-Object.Copy Before,After 如Worksheet("Sheet2").Copy After:=Worksheets("办公费用"),相当于把Sheet2工作表复制,并把它放置在名为“办公费用”的工作表之后 3、Move方法,移动指定的工作表并放置在指定的位置,用户同Copy方法,区别只天于复制与剪切之不同 4、Delete方法,无参数删除指定的工作表,如Worksheet("Sheet2").Delete 5、Cell方法,获取指定工作表指定行列的某个单元格 格式:Worksheet-Object.Cells(Row,Col),Row,Col为整型,行列值都从1开始 如Worksheet("Sheet2").Cell(1,1),相当于获取Sheet2工作表的第一行第一列的单元格 五、Range对象 代表一个半桥区域,可以由多个半桥组成,也可是由一个单元格组成。 引用单元格可用以下两种方法: 一是使用单元格引用,如Range("A1"),Range("A1:C3") 二是使用单元格区域名称,如Range("myRange")。 <一>属性 1、FormulaR1C1属性,为指定的单元格或单元格区域建立和存储公式, 如Range("C5").FormulaR1C1="=SUM(R[-4]C:R[-1]C)" 2、Value属性,为指定的单元格或单元格区域赋值,如为多个单元格,则都赋为同样的值 3、Cell属性,以指定的单元格为苦战来描述被引用的单元格,把指定的单元格视为第1行第1列 格式:Range-Object.Cells(Row,Col) 4、Offset,以指定的单元格为苦战来描述被引用的单元格,把指定的单元格视为第0行第0列 格式:Range-Object.Cells(Row,Col) 5、Name属性,返回或设定指定的单元格或单元格区域的名称,然后在VBA中,可以直接用名称为引用它 6、Count属性,返回指定的单元格区域中包含的单元格的数目,只读 7、CurrentRegion属性,返回以某个单元格为基点的存储有数据的一个连结的单元格区域 <二>方法 1、Select方法方法,用于选择指定的单元格区域,执行后,该单元格区域左上角的第一个单元格成为活动单元格 如Range("A1:C3").Select,Range("A1:C3,D5:E6,A8:E8).Select 2、Activate方法,用于选择指定的单元格并指定其成为活动单元格,当然只有该单元格区域左上角的第一个单元格成为活动单元格。 3、AutoFit方法,调整选定的单元格区域所在行和列的行高与列宽,使其行高与列宽自动设定的最佳的高度与宽度。 如:Range("A4").CurrentRegion.Select Selection.Rows.AutoFit 4、Clear方法,清除指定的单元格区域的内容,格式和批注,相当于“编辑->清除->全部” 如:Range("A4:C5").Clear 5、ClearContents方法,清除指定的单元格区域的内容,相当于“编辑->清除->内容” 6、ClearFormats方法,清除指定的单元格区域的内容,相当于“编辑->清除->格式” 7、ClearComments和ClearNotes方法,清除指定的单元格区域的内容,相当于“编辑->清除->批注” 8、Copy方法,将指定单元格区域中的数据库复制到剪贴板或指定的目的单元格区域中 9、Cut方法,将指定单元格区域中的数据库剪切到剪贴板或指定的目的单元格区域中 10、PasteSpecial方法,用于将剪贴板中复制或剪切下来的单元格区域中的数据库有选择地粘贴到指定的目的单元格区域中 格式:Range-Object.PasteSpecial Paste,Operation,ShipBlanks,Transpose Paste参数规定了选择体积类型的数据进行粘贴,如公式,内容,批注等,具体取值可参考VB编辑器中的提示

⑶ 什么是嵌入式 Qt

Qt是一个跨平台应用程序和UI开发框架。使用Qt只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。Qt原为奇趣科技公司(Trolltech,www.trolltech.com)开发维护,已被nokia公司收购,在nokia的推动下,Qt的发展非常快速,版本不断更新。目前最新的Qt主版本为4.8.1,所支持的平台如下图所示:

EasyARM-iMX283提供已交叉编译好的Qt库(Qt-4.8.0),用户无需编译,系统已经将Qt库文件集成到了交叉编译器中。用户将得到此库的两份拷贝,一份内嵌在交叉编译工具链中,供编译时链接使用。一份内嵌在目标板文件系统中,放置在系统库目录下,供Qt程序运行时动态加载使用

⑷ linux安装QT的问题

1.如果在./configure阶段,出现了以下错误 Basic XLib functionality test failed! You might need to modify the include and library search paths by editing QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 那是因为没装有libxtst-dev,使用命令apt-get install libxtst-dev安装 2.如果在make阶段,出现一下错误 /usr/bin/ld: cannot find -lXrender collect2: ld returned 1 exit status make[1]: *** [../../../../lib/libQtWebKit.so.4.7.3] 错误 1 make[1]: Leaving directory `/home/debian/桌面/qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore' make: *** [sub-webkit-make_default-ordered] 错误 2 那是因为没有装libxrender-dev 3.在qt create中,尝试编译测试,如果找不到qmake,则在工具-选项-QT4中手动设置qmake的位置。qmake的位置默认在/usr/local/Trolltech/Qt-4.7.3/bin/qmake。

⑸ 求Cinema 4D R20 for Mac 破解版

前言:此版本的软件安装包附加激活教程我可以给您一份,不过仅供个人使用,切勿传播,希望可以帮助您。点击下载Cinema 4D R20 for Mac(C4D R20)中文破解版:http://mac.orsoon.com/Mac/164582.html安装教程1、c4d r20 mac 破解版镜像包下载完成后打开,双击打开【Cinema 4D R20安装包.dmg】2、双击【MAXON-Start】进行安装,如图3、选择简体中文,点击“setup”,如图4、进入Cinema 4D R20 for Mac安装界面,请点击继续,如图5、弹出一个Cinema 4D R20 注册页面,如图:6、回到c4d r20 mac 破解版镜像包,打开【c4d r20序列号】,如图:7、完善您的个人信息,然后将【c4d r20 序列号】输入到注册界面中,然后点击继续,如图:8、选择【Cinema 4D】,然后点击继续,如图9、点击继续,如图:10、请同意Cinema 4D R20许可协议,然后点击“继续”,如图:11、默认 Cinema 4D R20 for Mac安装路径,请点击继续,如图:12、请输入密码允许 Cinema 4D R20 for Mac继续安装,如图:13、Cinema 4D R20 for Mac正在安装,耐心等待一会。14、Cinema 4D R20 for Mac安装成功,去掉勾选“开始Cinema”选项,然后点击【结束】。12、回到cinema 4d r20 破解版镜像包,打开【cinema 4d r20 破解补丁】。13、将左侧的【c4dplugin.xlib】拖到右边的【corelibs】(corelibs路径:/Applications/MAXON/Cinema 4D R20/corelibs)14、点击【替换】。15、输入您的Mac电脑密码,然后点击【好】。16、这样Cinema 4D R20 for Mac(c4d R20)中文破解版就激活成功了,大家可以打开尽情使用了。

⑹ c4d r20破解补丁怎么用啊求一份详细的破解教程

c4dr20的发布标志着技术的巨大飞跃,此版本引入了庞大的新框架,速度和内存优化,拥有更快的图片查看器播放,具备您所需的一切高端3D工具,为您的创意提供了巨大的动力。

Cinema 4D R20 Mac 破解版 c4d r20 破解教程

点击下载:c4d r20破解补丁

1、回到cinema 4d r20 破解版镜像包,打开【cinema 4d r20 破解补丁】

2、将左侧的【c4dplugin.xlib】拖到右边的【corelibs】

corelibs路径:/Applications/MAXON/Cinema 4D R20/corelibs

3、点击【替换】。

4、输入您的Mac电脑密码,然后点击【好】。

5、这样Cinema 4D R20 for Mac(c4d R20)中文破解版就激活成功了,大家可以打开尽情使用了。

⑺ linux中源代码包安装的基本步骤是什么

详解linux源码包安装过程1. 解压缩包可以通过下载或其他方式获得了一个软件包,通常它是一个压缩文件,大部分可能是存档的和压缩的,这些文件一般以 .tar .gz为扩展名。首先拷贝它到一个目录,然后 untar 和 gunzip 解压它。 通常这个命令是 tar xzvf filename [filename 是软件文件名称]解压后的文件一般会在当前目录下的创建子目录,并以这个包名来命名。 你也可以用用这个命令预先查看结果 tar tzvf filename,显示包里有那些解压文件。 源文件如果是新的 bzip2 (.bz2) 格式,可用 bzip2 -cd filename | tar xvf -,或更简单的 tar xyvf filename ,这很不错的tar命令被不断的完善。 说明:A:有时候一些文件必须安装在用户的 home 目录下,或更多的是在一个固定的目录,比如 /, /usr/src, 或 /opt 。所以必须仔细阅读安装包的配置信息。当一个软件包里如果有config 和 Makefiles 文件则最好去编辑它,这里包括了安装指令和说明。提示:你改变 makefile 会导致不同的结果。大部分软件包允许用 make install 自动处理安置二进制文件在适当的系统位置。 B:你可能碰到过一些共享文件、shell 存档文件、尤其是 Internet 上的源码新闻组。它们保留的原因是具有人性化的可读性,并且允许新闻组缓冲并通过它们筛选和剔除出不合格的。它们可能用 unshar filename.shar 命令来解压。C: 一些源码存档文件是用非标准的 DOS,Mac 或其他压缩的比如:zip, arc, lha, arj, zoo, rar, and shk. D: 有时候,你可能需要使用一个 patch 或显示改变了的 diff 文件来升级或修复存档的源码文件。这 doc 文件或者 README 文件将告诉你怎么去使用。一个很好的命令用标准语法来调用的命令是 patch < patchfile. 2: 关于 rpm 安装包一些 Linux 用户惧怕通过使用源码来手动安装软件包,不过现在有方便的 rpm 和 deb 或 新格式的 slp 包。例如:rpm 安装运行平稳又快,作为一个软件安装在某几个有名的操作系统。作为方便的RPM包也存在很多不好的缺点,例如:A: 要了解软件中更多更详细的内容你必须去在二进制中去了解,而不是rpm包。B: 还有安装一个 rpm 包如果需要依赖关系那么安装就可能会导致失败。C: 当 rpm 请求你系统中不同版本的库,那么安装将不能继续,除非你为错误的库位置创建连接符号到正确的位置。 说明:必须使用root 安装 rpm 和 deb 。因为它需要必须的写入权限。 最简单的,用命令 rpm -i packagename.rpm 和 dpkg –install packagename.deb 会自动解包和安装。3:关于安装 Linux 包出现的一些问题及解决方案 假设 make 失败有个链接错误: -lX11: No such file or directory,正好在 xmkmf 之后已被调用,这可能意味着 Imake 不能被完全建立。检查第一部分 Makefile 文件的的行是这样: · LIB= -L/usr/X11/lib· INCLUDE= -I/usr/X11/include/X11· LIBS= -lX11 -lc -lm 这个 -L 和 -I 开关告诉编译器和链接分别在哪里找到 library 和 include 文件。在这个例子里, X11 库应该在 /usr/X11/lib 目录,且 X11 包含文件应该在 /usr/X11/include/X11 目录里。假如对于你的机器上的这个错误,请处理修改 Makefile 并重新再 make。 没有声明涉及的数学库函数,像下列各项: /tmp/cca011551.o(.text 0x11): undefined reference to `cos'要修复它,需要明确链接到匹配的库,在 Makefile (看先前的例子) 里增加一个 -lm 到 LIB 或 LIBS 标记 。 用其他方法尝试仍然失败 如果失败,参考下列脚本: make -DUseInstalled -I/usr/X386/lib/X11/config这个直接方式的类别相当于。 在少数例子里,用 root 运行 ldconfig 可能会解决: # ldconfig 更新共享库链接符号。一些 Makefiles 使用你系统里未被承认的库别名。一个例子,构建可能需要 libX11.so.6 ,但是在 /usr/X11R6/lib 不存在文件或链接。然而,在那里是 libX11.so.6.1。解决方法是用 root 运行ln -s /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/lib/libX11.so.6 ,接着需要运行 ldconfig 。 有一些包需要你安装一个或更多库的升级版本。需要拷贝一个或更多的库到适当的目录里,删除旧的库,重新设置动态链接库。 4:一些其他的问题处理安装一个shell 脚本如果出现:No such file or directory 的错误消息。这是可以检查文件权限确定文件事可执行的,并检查文件头确定是否 shell 或程序是脚本在指定的位置被调用。一个例子,这个脚本可能是这样开始的:#!/usr/local/bin/EDEN如EDEN的实际安装位置是在你的 /usr/bin 目录,用一个 /usr/local/bin 替代这个脚本不能运行有两个方法来纠正!!A: 文件头改成 #!/usr/bin/EDENB: 或增加一个链接符, ln -s /usr/bin/EDEN5:一个典型的例子 Xloadimage 首先说明下面的例子来源于国外网站的一个技术实例,这里我做了翻译和整理。这个例子展现一个简单的问题。xloadimage 程序对我的图形工具的调整设置是有用的附加。从源码目录拷贝文件,用 tar xzvf 解压文件,可是在运行 make 的时候出现令人讨厌的错误并停止了。 gcc -c -O -fstrength-rece -finline-functions -fforce-mem-fforce-addr -DSYSV -I/usr/X11R6/include-DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\" mcidas.cIn file included from /usr/include/stdlib.h:32, from image.h:23, from xloadimage.h:15, from mcidas.c:7:/usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:conflicting types for `wchar_t'/usr/X11R6/include/X11/Xlib.h:74: previous declaration of`wchar_t'make[1]: *** [mcidas.o] Error 1make[1]: Leaving directory`/home/thegrendel/tst/xloadimage.4.1'make: *** [default] Error 2这个错误消息包含了实质的线索: 查看 image.h 文件的 23 行: #include < stdlib.h>在源码的某处对于 xloadimage, wchar_t 已经在指定标准 include 文件重新定义。 告诉我们首先在 image.h 的 23 行尝试注释它,或许 stdlib.h include 是不存在的,毕竟不是所有都是必需的。 在这点,构建中的收益来源于所有任何一个致命错误。xloadimage 现在功能正常。 6: 安装 Linux 包的一些总结坚持自己动手处理所有的安装出现的问题,不断总结努力学习,从错误里去仔细研究,努力动手排错,从每个不足甚至失败的地方得到扩充和提升,可以增强安装构建软件的技巧。

⑻ 哪位大神可以分享一下C4Dr20 中文帮助

Cinema 4D R20 Mac 破解版 c4d r20 破解教程1、回到cinema 4d r20 破解版镜像包,打开【cinema 4d r20 破解补丁】。2、将左侧的【c4dplugin.xlib】拖到右边的【corelibs】corelibs路径:/Applications/MAXON/Cinema 4D R20/corelib3、点击【替换】。4、输入您的Mac电脑密码,然后点击【好】5、这样Cinema 4D R20 for Mac(c4d R20)中文破解版就激活成功了,大家可以打开尽情使用了。注意:软件不要更新哦!

⑼ 跪求c4d r20 Mac版破解补丁

Cinema 4D R20 Mac 破解版 c4d r20 破解教程1、回到cinema 4d r20 破解版镜像包,打开【cinema 4d r20 破解补丁】。2、将左侧的【c4dplugin.xlib】拖到右边的【corelibs】corelibs路径:/Applications/MAXON/Cinema 4D R20/corelib3、点击【替换】。4、输入您的Mac电脑密码,然后点击【好】5、这样Cinema 4D R20 for Mac(c4d R20)中文破解版就激活成功了,大家可以打开尽情使用了。注意:软件不要更新哦!

⑽ python3.6怎么清屏幕

本文分享Python的清屏命令,需要的小伙伴可以学习一下。

在IDLE下清屏:

#网上有些先定义函数,再?print("n" * 100)输出一百个换行的方法有点扯淡,跟连按回车没什么太大区别,光标根本回不到首行。

#还是下面这种方法实用一些。操作好后,只要用ctrl+L就可以清屏了。

推荐学习《python教程》

#在IDLE下清屏的方法还是比较容易的,请耐心观看,下面我以图文结合的形式介绍一下:

1.首先下载ClearWindow.py

2.再将ClearWindow.py文件放在Python XLibidlelib目录下(X为你的python版本)

python的默认安装路径:C:)

3.然后在这个目录下找到config-extensions.def这个文件

以记事本的方式打开它(为防止出错,你可以在打开它之前先一个备份)。

打开config-extensions.def 后在句末加上这样几句:

[ClearWindow]

enable=1

enable_editor=0

enable_shell=1

[ClearWindow_cfgBindings]

clear-window=<Control-Key-l>

然后保存退出就可以了。

4.重新打开python的IDLE,看看options是不是多了一个选项clear shell window ctrl+L

如果是这样的话,那就证明你安装成功了,以后要清屏直接按ctrl+L就可以了。