网易网站建设做网站费用怎么记分录

张小明 2026/1/1 9:00:44
网易网站建设,做网站费用怎么记分录,百度指数下载手机版,wordpress视频类主题继上一篇【wxWidgest教程】界面布局#xff1a;自动布局之后#xff0c;本篇将进入介绍界面布局器wxSizer的使用方法。wxWidgets教程完整目录 调整器使用的布局算法与其他GUI工具包#xff08;如Java的AWT、GTK工具包或Qt工具包#xff09;中的布局系统几乎相同。它基…继上一篇【wxWidgest教程】界面布局自动布局之后本篇将进入介绍界面布局器wxSizer的使用方法。wxWidgets教程完整目录调整器使用的布局算法与其他GUI工具包如Java的AWT、GTK工具包或Qt工具包中的布局系统几乎相同。它基于单个子窗口报告其最小所需大小以及在父窗口大小发生更改时拉伸。这通常意味着您不设置对话框的启动大小而是为对话框分配一个调整器并询问这个调整器的建议大小调整器将依次查询其子级可以是普通窗体、空白区域或其他调整器以便可以构造调整器的层次结构。使调整器非常适合在wxWidgets中使用的原因是每个控件都报告自己的最小大小并且算法可以处理不同平台上字体大小或不同窗口对话框项大小的差异而不会出现问题。例如如果标准字体以及Linux/GTK小部件的总体设计需要比Windows上更多的空间那么Linux/GTK上的初始对话框大小将自动比Windows上的大。调整器同时也是一类容器用于布局并包含子控件。使用wxWindow::Show()方法可以像隐藏任何控件一样隐藏大小调整器中包含的控件。不过wxSizer还提供了一个单独的方法可以告诉调整器在其大小计算中不要考虑该控件。调用boolShow(wxWindow*window,boolshowtrue,boolrecursivefalse ),然后必须调用调整器上的void wxSizer::Layout()来强制更新。这在隐藏部分窗口时很有用因为您可以避免从调整器中删除控件以后再添加它们仅wxBoxSizer和wxFlexGridSizer支持该功能。一、一维布局一wxBoxSizerwxBoxSizer基于这样一个认识即窗口通常以非常简单的基本几何形式布局通常是一行或一列。wxBoxSizer可以垂直或水平布局其子项具体取决于其构造函数wxBoxSizer(intorient)中使用的标志是。orient为wxVERTICAL使用垂直方向排列每个子项都可以居中、右对齐或左对齐。相应地orient为wxHORIZONTAL水平方向排列每个子项都可以居中、在底部对齐或在顶部对齐。拉伸因子用于主方向确定子项水平或垂拉伸的程度。下面的示例演示wxBoxSizer的使用例子同时使用了两种标志设置方式。MyFrame::MyFrame(wxWindowID id,const wxString title,const wxPoint pos, const wxSize size ,long style , const wxString name):wxFrame(NULL,id,title,pos,size,style,name){ //ctor wxSizerFlags sizerFlag; sizerFlag.Border(wxALL,1).Proportion(1).Expand(); wxBoxSizer* outBoxnew wxBoxSizer(wxVERTICAL); wxBoxSizer* hBox1new wxBoxSizer(wxHORIZONTAL); hBox1-Add(new wxButton(this,wxID_ANY,Test Button 1),sizerFlag); hBox1-Add(new wxButton(this,wxID_ANY,Test Button 2),1,wxEXPAND|wxALL); wxBoxSizer* hBox2new wxBoxSizer(wxHORIZONTAL); hBox2-Add(new wxTextCtrl(this,wxID_ANY,hbox2 text box1, wxDefaultPosition,wxDefaultSize, wxTE_MULTILINE),sizerFlag); hBox2-Add(new wxTextCtrl(this,wxID_ANY,hbox2 text box2, wxDefaultPosition,wxDefaultSize, wxTE_MULTILINE),2,wxEXPAND|wxALL); hBox2-Add(new wxTextCtrl(this,wxID_ANY,hbox2 text box3, wxDefaultPosition,wxDefaultSize, wxTE_MULTILINE),1,wxEXPAND|wxALL); outBox-Add(hBox1,sizerFlag); outBox-Add(hBox2,wxSizerFlags(1).Expand().Border(wxALL)); SetSizerAndFit(outBox); }二wxStaticBoxSizerwxStaticBoxSizer与wxBoxSizer相同但由一个静态框包围。下面是一个示例MyFrame::MyFrame(wxWindowID id,const wxString title):wxFrame(NULL,id,title){ //ctor wxBoxSizer *topSizernew wxBoxSizer(wxVERTICAL); wxStaticBoxSizer* sizer1new wxStaticBoxSizer(wxHORIZONTAL,this,wxStaticBoxSizer); sizer1-Add(new wxCheckBox(this,wxID_ANY,option 1),wxALL|wxEXPAND); sizer1-Add(new wxCheckBox(this,wxID_ANY,option 2),wxALL|wxEXPAND); sizer1-Add(new wxCheckBox(this,wxID_ANY,option 3),wxALL|wxEXPAND); sizer1-Add(new wxCheckBox(this,wxID_ANY,option 4),wxALL|wxEXPAND); wxStaticBoxSizer* sizer2new wxStaticBoxSizer(wxHORIZONTAL,this,wxStaticBoxSizer); sizer2-Add(new wxCheckBox(this,wxID_ANY,option 1),wxALL|wxEXPAND); sizer2-Add(new wxCheckBox(this,wxID_ANY,option 2),wxALL|wxEXPAND); sizer2-Add(new wxCheckBox(this,wxID_ANY,option 3),wxALL|wxEXPAND); sizer2-Add(new wxCheckBox(this,wxID_ANY,option 4),wxALL|wxEXPAND); topSizer-Add(sizer1,wxSizerFlags(1).Expand().Border(wxALL)); topSizer-Add(sizer2,wxSizerFlags(1).Expand().Border(wxALL)); SetSizerAndFit(topSizer); }三wxWrapSizer一个wxWrapSizer将它的子项排成一行就像wxBoxSizer一样只要在主方向有可用的空间不同的是当空间占满后wxWrapSizer将在次方向上添加新行或列。二、二维布局一wxGridSizerwxGridSizer是一个二维的调整器。所有子项都被赋予相同的大小其大小与最大子项所需的最小大小相同。在本例中是左下边框中的文本控件。列数或行数都是固定的如果添加了新的子项则网格大小调整器将按各自的其他方向增长MyFrame::MyFrame(wxWindowID id , const wxString title) : wxFrame( nullptr, id, title){ //ctor wxGridSizer *sizernew wxGridSizer(4,3,wxSize(1,1)); wxString btnNames[]{0,1,2,3,4,5,6,7,8,9,,-}; for(wxString bn:btnNames){ sizer-Add(new wxButton(this,wxWindow::NewControlId(),bn), wxSizerFlags(1).Expand().Border(wxALL,1)); } SetSizerAndFit(sizer); }在wxSizer的基础上wxGridSizer增加了如下函数用于设置网络的行列数及行列之间的间隔voidSetRows(introws);voidSetCols(introws);voidSetVGap(intgap);voidSetHGap(intgap);二wxFlexGridSizer从wxGridSizer派生的另一个二维调整器。每一列的宽度和每一行的高度是根据各自最大的子级的最小要求分别计算的。此外如果为调整器分配的大小不同于它所请求的大小则可以将列和行声明为可扩展的。下面的示例显示的对话框与上面的示例相同但使用的是wxFlexGridSizerMyFrame::MyFrame(wxWindowID id ,const wxString title) : wxFrame( nullptr, id, title) { //ctor wxFlexGridSizer *sizernew wxFlexGridSizer(4,3,wxSize(1,1)); wxString btnNames[]{0,1,2,3,4, 535; 2*222444 \r\nf(n)100*n, 6,7,8,9,,-}; for(wxString bn:btnNames){ sizer-Add(new wxButton(this,wxWindow::NewControlId(),bn),wxSizerFlags(1).Expand().Border(wxALL,1)); } SetSizerAndFit(sizer); }在wxGridSizer的基础上wxFlexGridSizer增加了以下操作设置行列拉伸因子如同一维布局中子控件的proportion参数一样在二维弹性布局中行和列也具有拉伸因子当调整器中有额外的空间时该拉伸因子决定了行或列如何扩展以填充剩余空间。通过voidAddGrowableCol(size_tidx,intproportion0)和voidAddGrowableRow(size_tidx,intproportion0)函数可以设置行或列的拉伸因子。idx:从0开始计数标识行号或列号proportion:行或列的空间占比大小。如果取消空间占比则可调用voidRemoveGrowableCol(size_tidx)和voidRemoveGrowableRow(size_tidx)函数。boolIsRowGrowable(size_tidx)和boolIsColGrowable(size_tidx)可判断特定行列是否可拉伸。设置拉伸方向从wxWidgets 2.5.0开始wxFlexGridSizer还可以在一个方向上等长调整控件大小而在另一个方向则相对灵活不要求长度相等。可以调用voidSetFlexibleDirection(intdirection)设置这个相对灵活的方向参数direction可以是wxVERTICAL、wxHORIZONTAL或wxBOTH。而在另一个方向则需要调用voidSetNonFlexibleGrowMode(wxFlexSizerGrowModemode)设置子控件填充剩余空间的方式。mode可以设置为下面的值表 11wxFlexSizerGrowMode定义wxFLEX_GROWMODE_NONESizer不会在非弹性方向上拉伸其子控件wxFLEX_GROWMODE_SPECIFIEDSizer使用AddGrowtableCol()和AddGrowtableRow()设置的proportion来决定列或行的最小大小这是默认值wxFLEX_GROWMODE_ALLSizer平等地拉伸所有列或行与proportion参数无关三wxGridBagSizerwxGridBagSizer可以像wxFlexGridSizer一样在虚拟网格中布局控件。与之不同的是该调整器还能够使用wxGBPosition显式地指定以col、row为坐标指定的网格位置以及使用wxGBSpan指定子控件占用的行数、列数类似于HTMLtable中的colspan和rowspan属性。该调整器的子项添加操作与其父类不同wxSizerItem*Add(wxWindow*window,const wxGBPositionpos,const wxGBSpanspanwxDefaultSpan,intflag0,intborder0,wxObject*userDataNULL);三、总结本文介绍了wxWidgets中wxSizer布局器的使用方法。wxSizer采用基于控件最小大小和拉伸因子的布局算法支持跨平台自适应。文章详细讲解了一维布局器(wxBoxSizer、wxStaticBoxSizer、wxWrapSizer)和二维布局器(wxGridSizer、wxFlexGridSizer、wxGridBagSizer)的特点及使用场景。重点说明了弹性布局中的行列拉伸因子设置、控件隐藏方法等实用功能并通过代码示例展示了各类布局器的实际应用。还有一些界面布局的高级用法如标准布局、弹簧等后续将进一步讨论。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

台州做网站最好的网站建设服务平台

Linly-Talker上线GPU镜像,加速数字人生成效率 在直播带货、虚拟客服和AI教师日益普及的今天,你有没有想过:一个能说会动的数字人,到底需要多少技术堆叠?过去,这可能意味着一支动画团队加班数周;…

张小明 2026/1/1 9:00:44 网站建设

网站的首页文案教育网站建设的策划方案

第一章:R 量子模拟的纠缠度计算在量子信息科学中,纠缠度是衡量量子系统中子系统之间非经典关联强度的核心指标。利用 R 语言进行量子态模拟并计算其纠缠度,为研究人员提供了一种灵活且可视化能力强的分析工具。通过构建复合量子系统的密度矩阵…

张小明 2026/1/1 8:58:40 网站建设

设计公司啊 网站wordpress系统邮件设置方法

摘要:农产品运输在农业产业链中起着承上启下的关键作用,其效率和质量直接影响农产品的流通与价值实现。本文设计并实现了一个基于VUE框架的农产品运输服务平台。该平台整合了系统用户管理、农产品信息管理、运输订单管理等多方面功能。利用VUE的前端优势…

张小明 2026/1/1 8:56:33 网站建设

如何创建网站后台安福县住房和城乡建设局网站

FaceFusion支持背景动态视频输入:场景融合更真实 在短视频、虚拟主播和影视后期日益依赖AI生成内容的今天,一个核心挑战始终存在:如何让人脸替换不只是“换张脸”,而是真正融入原场景?过去大多数换脸工具处理的是静态背…

张小明 2026/1/1 8:54:25 网站建设

建立个人网站的成本衣服品牌logo大全

华为MateChat组件是为AI生成内容(AIGC)场景设计的UI库。MateChat,作为华为专为AIGC场景精心打造的UI库,旨在助力开发者高效构建AI对话应用。实际上,它不仅支撑了华为内部多个应用的对话需求,还融入了CodeAr…

张小明 2026/1/1 8:52:20 网站建设

教人做衣服的网站东台网站开发

Zed插件生态深度解析:从入门到精通的全方位指南 【免费下载链接】zed Zed 是由 Atom 和 Tree-sitter 的创造者开发的一款高性能、多人协作代码编辑器。 项目地址: https://gitcode.com/GitHub_Trending/ze/zed 还在为代码编辑器功能单一而苦恼吗?…

张小明 2026/1/1 8:50:17 网站建设