我需要模拟一个类似于安装任何软件时看到的界面的表单.有下一个和后退按钮,用户输入的所有信息仅在他/她单击完成按钮时处理.
当用户单击后退按钮时,向他/她显示先前输入的信息.
当用户点击下一个按钮时,向他/她显示下一个屏幕.所有显示的信息都以一种形式显示.
我需要向用户展示3个部分.
目前正计划实施下列解决方案:
有没有比上面描述的更好的解决方案.如果是,请描述方法.我们将非常感谢您提供的任何帮助.
我正在构建和Android应用程序,需要通过像向导一样的步骤.
目前的结构:
目前我正在为每个步骤使用一个带有单独views.xml的活动,然后我setContentView(activeStep)用来显示活动步骤.
尝试在两个步骤之间制作动画时遇到了一些困难.我使用了以下代码:
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(activeStep, null, false);
view.startAnimation(AnimationUtils.loadAnimation(activity, R.anim.slide_in));
setContentView(view);
Run Code Online (Sandbox Code Playgroud)
结果:第一个视图消失了,新的视图已经动画化,而不是平滑过渡.
我的目标是为两个视图设置动画,一个在另一个视图中滑出.
问题:是否可以使用我当前的结构(提醒:一个活动,多个视图)或者我应该将每个步骤视为单独的活动?
我使用https://github.com/mgonto/angular-wizard创建一个角度向导,其步骤可以从路径参数调用:
等等
所以我创建了这个控制器:
.controller('createOrganizer', ['$scope', 'WizardHandler' , '$routeParams',
function($scope,WizardHandler,$routeParams)
{
//$scope.data = {};
$step = $routeParams.step;
WizardHandler.wizard().goTo($step);
}])
Run Code Online (Sandbox Code Playgroud)
在app.js和index.html上正确创建了正确的链接和路由
但是当我进入网址时,我得到了这个:
TypeError: Cannot call method 'goTo' of undefined
Run Code Online (Sandbox Code Playgroud)
这是使用url参数预先选择角度向导步骤的方法吗?
=================更新=====================
我尝试过这样的事情:
.controller('createOrganizer',['$ scope','WizardHandler','$ routeParams',函数($ scope,WizardHandler,$ routeParams){$ step = $ routeParams.step;
$scope.$watch(WizardHandler.wizard(), function(step) {
WizardHandler.wizard().goTo($step);
});
}])
Run Code Online (Sandbox Code Playgroud)
我的想法是告诉我何时实例化WizardHandler.wizard()以调用.goTo方法.使用此控制器我得到此错误:
TypeError:无法设置未定义的属性"selected"
不确定我是否正确使用手表.我甚至测试了step变量,它没问题,显示与url相同的值.
=================解决了!=====================
var step = parseInt($routeParams.step); // Important, as routeParams returns an String: the wizardHandler uses either an integer number or a string name of step. So I am …Run Code Online (Sandbox Code Playgroud) 我现在开始涉足Qt了,我想知道是否有办法让Qt Creator自动将变量添加到项目文件中.例如,我通常使用C++ 11代码,因此CONFIG += c++11当我开始一个新项目时Qt可以自动放入.pro文件会很好.我在选项中四处看看,但我无法理解某些部分,所以也许它就在我面前?
免责声明:在这个问题标签页面中,对话实际上意味着同样的事情,抱歉.我的理由:我不确定最终产品应该是什么样子 - 一堆独立的窗户或者一体化.
我希望改进一个用WinForms烘焙的现有的,难以维护的向导.我需要尝试保持相同的外观和感觉,但我需要清理内部逻辑.共有5个对话框,所有这些对话框都在一个巨大的方法中一个接一个地显示(当然,单击"下一个"按钮之后).来回跳跃的方式是...... 5或6个标签和GOTO!
现在,这个向导是线性的,而不是树.从任何一个对话框/页面,您最多可以访问其他两个对话框/页面.想到了双重链接列表.现在有5 * 4 = 20潜在的状态转换,而只有2*1 + 3*2 = 8它们是有效的.我不必使用gotos.他们通常是邪恶的,在这种情况下他们是 - 很难维持这个...而我正在考虑增加另一个,第6页.为什么原因gotos为在那里是最有可能,因为1.0版正在制作时A)的时间压力,B)这是5年前,所以在当时可用的奇才最好的例子/教程可能不是很大.
现在,向导的大多数页面都要求用户输入.根据用户输入的内容呈现后续页面.如果用户在第3页上说并且决定将后退按钮一直指向1,并且没有更改任何内容,并且点击下一次两次,则状态不应该更改.但是,更改页面x上的内容通常会使页面x + 1上的内容无效.但是,有一些例外,因为页面x上的某些或所有设置可能依赖于页面x-1,x-2等,但页面x + 1,x + 2等不依赖于x一些x.
我希望到目前为止事情是清楚的.我们试图通过为他们默认一些东西来帮助用户.存储事物的方式也不是很好.该对话框具有读/写属性,从/向实际控件复制内容.然后,在主方法中,存在"超级存储",其保存每页的存储.因此,当用户完成页面x并接下来命中时,首先将内容从控件复制到类的本地存储中,然后将这些内容保存到超级存储的相应成员中.
没有使用(对话框/存储器)数组和索引.每个goto目标(标签)都有单独但类似的"创建和填充"逻辑.当页面不再显示时,对话框对象会被丢弃(它们不会被丢弃,但每次要显示它们时,它们都会被重新创建并重新填充.我不相信这是必要的,因为只有需要单个手柄,并且在显示和关闭之后,我相信它可以在相同的状态下再次显示,而不必重新填充控件.如果浪费内存是唯一的问题,我可能会让事情滑落,但事情不是很容易维护,所以我不妨解决这个问题.
我在想:
如您所见,有一些挑战.然而,我很有希望,因为通过良好的精灵设计思考是一个肯定是以前重新发明的轮子.也许你可以推荐一个开源的C#/ mono应用程序,它带有一个线性但非平凡的向导,这样我就可以看一下实现.哎呀,甚至Java/Swing也许适合我,只要向导本质上是相似的.WPF对我来说是另一个挑战,我不想有2个问题而不是1个问题.
让我知道你能想到什么.我应该保留这些东西但是尽可能多地清理其他部分吗?随意问的问题.谢谢,
-HG
我在VS2010中为自定义模板创建了一个向导,它就像一个魅力.
但由于向导包含完成项目创建所需的表单,我觉得用户应该能够取消项目的创建.
所以我的问题是......
是否可以从实现IWizard的向导中取消创建项目/模板过程?
这些是我得到的事件.
public void BeforeOpeningFile(ProjectItem projectItem)
public void ProjectFinishedGenerating(Project project)
public void ProjectItemFinishedGenerating(ProjectItem projectItem)
public void RunFinished()
public void RunStarted(object automationObject,
Dictionary<string, string> replacementsDictionary,
WizardRunKind runKind, object[] customParams)
public bool ShouldAddProjectItem(string filePath)
Run Code Online (Sandbox Code Playgroud)
谢谢!
我开始在VS 2010中探索性能分析器,并且很难发现它很有用.我意识到这很可能是因为我不熟悉这个工具.
我正在寻找的是一种识别最耗时的方法调用的方法.很多时候,它只会将ASP.NET方法识别为最严重的违规者,例如ProcessRequest等,并且很难将其缩小到实际的方法,这需要花费很长时间.
我想识别我的代码中执行时间最长的调用.
任何指针将不胜感激.谢谢!
我有p:wizard一些标签.在第一个选项卡中,用户选择一个值(t :selectOneRadio- 我正在使用Tomahawk).这是必需的价值.
如果用户未选择值,则不会转到下一个选项卡,但不会显示验证错误.嗯.
如果用户选择了一个值,则转到下一个选项卡,返回第一个选项卡并选择一个不同的值,它的行为就像这次没有选择任何值一样.(也没有验证错误,但无法调用第二个选项卡).
更糟糕的是:用户在第一个选项卡中选择一个值,转到第二个选项卡,尝试从那里调用一个操作......出现验证消息; 它就像在第一个选项卡中没有选择任何值一样.
这有什么解释吗?
UPDATE
PrimeFaces论坛中提出的解决方案为我工作.(将process ="@ this"添加到commandButton.)
我创建了一个基于SWT的向导,它有自定义的帮助按钮.现在我想把一些内容放在后面,所以也许SWT浏览器会开放,并且会显示预定义的HTML Doc.但我没有任何线索在我的向导中访问帮助按钮的操作.任何的想法?
我正在尝试从OpenERP中的按钮调用的动作启动向导.我可以使用侧面菜单按钮启动向导,但每当我在按钮中使用动作时,我只会进行几次刷新,而不会打开新的表单.
该向导非常基本.这是代码:
wizard.xml
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_res_partner_add_terminal_wizard" model="ir.ui.view">
<field name="name">res.partner.terminal.form</field>
<field name="model">res.partner.terminal</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Add terminal">
<group colspan="4" >
<separator string="Select terminals to assign" colspan="4"/>
<field name="terminal_id" string="Terminals" domain="[('state','=','available')]"/>
<newline/>
</group>
<separator string="" colspan="4" />
<group colspan="4" col="6">
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-ok" name="add_terminal" string="Assign Terminal" type="object"/>
</group>
</form>
</field>
</record>
<record id="action_res_partner_terminal" model="ir.actions.act_window">
<field name="name">Assign Terminal</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner.terminal</field>
<field name="src_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_res_partner_add_terminal_wizard"/>
<field name="target">new</field> …Run Code Online (Sandbox Code Playgroud)