我有一些Python代码会以一种漂亮的列格式自动打印一组数据,包括放入适当的ASCII转义序列来为各种数据着色以便于阅读.
我最终将每一行表示为一个列表,每个项目都是一个空格填充的列,以便每行上的相同列始终具有相同的长度.不幸的是,当我真正去打印时,并非所有列都排成一行.我怀疑这与ASCII转义序列有关 - 因为该len函数似乎没有识别这些:
>>> a = '\x1b[1m0.0\x1b[0m'
>>> len(a)
11
>>> print a
0.0
Run Code Online (Sandbox Code Playgroud)
因此,当每列的长度相同时len,它们在屏幕上打印时的长度实际上并不相同.
有没有办法(除了用正则表达式做一些hackery,我宁愿不这样做)来获取转义字符串并找出打印长度是什么所以我可以适当地填充空间?也许某种方式将其"打印"回字符串并检查其长度?
我正在寻找一种通过引用传递方法的方法.我知道Java不会将方法作为参数传递,但是,我想获得一个替代方案.
我被告知接口是将方法作为参数传递的替代方法,但我不明白接口如何通过引用充当方法.如果我理解正确,接口只是一组未定义的抽象方法.我不希望每次都发送需要定义的接口,因为几种不同的方法可以使用相同的参数调用相同的方法.
我想要完成的是类似的事情:
public void setAllComponents(Component[] myComponentArray, Method myMethod) {
for (Component leaf : myComponentArray) {
if (leaf instanceof Container) { //recursive call if Container
Container node = (Container) leaf;
setAllComponents(node.getComponents(), myMethod);
} //end if node
myMethod(leaf);
} //end looping through components
}
Run Code Online (Sandbox Code Playgroud)
调用如:
setAllComponents(this.getComponents(), changeColor());
setAllComponents(this.getComponents(), changeSize());
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个与iPhone上的"幻灯片"按钮类似的按钮.我有一个动画调整按钮的位置和宽度,但我希望这些值基于控件中使用的文本.目前,它们是硬编码的.
到目前为止,这是我的工作XAML:
<CheckBox x:Class="Smt.Controls.SlideCheckBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Smt.Controls"
xmlns:System.Windows="clr-namespace:System.Windows;assembly=PresentationCore"
Name="SliderCheckBox"
mc:Ignorable="d">
<CheckBox.Resources>
<System.Windows:Duration x:Key="AnimationTime">0:0:0.2</System.Windows:Duration>
<Storyboard x:Key="OnChecking">
<DoubleAnimation Storyboard.TargetName="CheckButton"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)"
Duration="{StaticResource AnimationTime}"
To="40" />
<DoubleAnimation Storyboard.TargetName="CheckButton"
Storyboard.TargetProperty="(Button.Width)"
Duration="{StaticResource AnimationTime}"
To="41" />
</Storyboard>
<Storyboard x:Key="OnUnchecking">
<DoubleAnimation Storyboard.TargetName="CheckButton"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)"
Duration="{StaticResource AnimationTime}"
To="0" />
<DoubleAnimation Storyboard.TargetName="CheckButton"
Storyboard.TargetProperty="(Button.Width)"
Duration="{StaticResource AnimationTime}"
To="40" />
</Storyboard>
<Style x:Key="SlideCheckBoxStyle"
TargetType="{x:Type local:SlideCheckBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:SlideCheckBox}">
<Canvas>
<ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
RecognizesAccessKey="True"
VerticalAlignment="Center"
HorizontalAlignment="Center" />
<Canvas>
<!--Background-->
<Rectangle Width="{Binding ElementName=ButtonText, Path=ActualWidth}"
Height="{Binding ElementName=ButtonText, Path=ActualHeight}" …Run Code Online (Sandbox Code Playgroud) 我有以下控制器操作:
[HttpPost]
public ViewResult DoSomething(MyModel model)
{
// do something
return View();
}
Run Code Online (Sandbox Code Playgroud)
哪里MyModel是这样的:
public class MyModel
{
public string PropertyA {get; set;}
public IList<int> PropertyB {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
所以DefaultModelBinder应该没有问题地绑定它.唯一的事情是我想使用特殊/自定义绑定器进行绑定PropertyB,我也想重用这个绑定器.所以我认为解决方案是在PropertyB之前放置一个ModelBinder属性,当然这不起作用(属性上不允许使用ModelBinder属性).我看到两个解决方案:
要在每个属性上使用动作参数而不是整个模型(我不喜欢,因为模型具有很多属性),如下所示:
public ViewResult DoSomething(string propertyA, [ModelBinder(typeof(MyModelBinder))] propertyB)
Run Code Online (Sandbox Code Playgroud)要创建一个新类型,可以说MyCustomType: List<int>并注册此类型的模型绑定器(这是一个选项)
也许为MyModel创建一个绑定器,覆盖BindProperty以及该属性是否"PropertyB"使用我的自定义绑定器绑定该属性.这可能吗?
还有其他解决方案吗?
场景如下:我正在使用Jquery来实现一些ajax功能.例如:当用户单击"获取数据"按钮时,Jquery将调用.ajax函数从服务器获取一些数据.这个过程可能需要一些时间,所以我添加了.ajaxSend和.ajaxComplete函数来显示等待进程的一些动画(实际上是一个带有z-index的div中的'Loading Data'gif:999是其中div的顶部).在等待过程中("加载数据"),我想阻止用户点击其他按钮(例如:我有其他标签,小'加载数据'gif下面的按钮).我实现这一目标的方式是:
$("body").ajaxSend(function()
{
$(this).append('<div id="loading">Data Loading<\/div>');
$("div#error").remove();
$(this).children().not('#loading').css({'opacity':0.22});
});
$("body").ajaxComplete(function()
{
$("div#loading").remove();
$(this).children().not('#loading').css({'opacity':1});
});
Run Code Online (Sandbox Code Playgroud)
但是,我不认为改变不透明度是最好的方法.除非您将不透明度设置为0,否则用户仍然可以单击其他按钮/选项卡.我不知道在这个过程中如何完全避免任何用户交互?谢谢!!
我一直在这里寻找答案,似乎我可能只是对git分支应该如何工作做出错误的假设.
我有我的master分支,我已经创建了一个功能分支profiles,我正在为配置文件做一些特定的工作.在处理配置文件时,我更改了5或6个文件,并添加了另外5或6个新文件.我需要切换回master分支来修复快速错误,并注意到所有新文件和修改过的文件.我想这是有道理的,因为git不会从master分支中删除未跟踪的文件并将它们带回我的profiles分支,因为它们实际上是未跟踪的.但是对现有文件的更改又如何呢?它们为什么出现在主分支中.
这是什么最好的做法.我还没准备好在本地提交更改.我应该只是隐藏所有这些更改,切换到master,进行小修复,切换回profiles然后重新应用存储?
任何帮助表示赞赏.谢谢
我有一个表单,其中有一个"提交"按钮和一个"取消"锚点.HTML是这样的:
<input type="submit" value="Submit" />
<a href="some_url">Cancel</a>
Run Code Online (Sandbox Code Playgroud)
我希望两个人看起来和行为一样.没什么好看的,只是类似于"Ask Question"锚点在StackOverflow上看起来的样子.
我可以让两个看起来有点相似,包括边界框,背景颜色和悬停背景颜色,但我不能完全获得高度和垂直对齐以便彼此玩得很好.我发布了我的CSS但是现在这样一团糟,我认为从头开始可能更容易,让准系统的CSS布局工作,然后继续前进.
PS我知道我可以使用an而不是锚点并挂钩onClick事件来进行重定向.现在,使用锚来解决这个问题几乎是一个原则问题(此外还要考虑网络蜘蛛的考虑因素).
我们有一个ASP.NET 1.1 Web应用程序.它调用C++ COM对象,后者又调用.NET COM对象.最初,这个.NET COM对象是.NET 1.1程序集.现在,我们需要修改这个.NET COM对象,在这个过程中我们现在使用Visual Studio 2008,因此它现在是一个.NET 2.0 COM对象.我们现在发现我们的ASP.NET 1.1 Web应用程序仍然可以调用C++ COM对象,但是C++ COM对象无法在新的.NET 2.0 COM对象上调用CoCreateInstance().当我们将Web应用程序配置为使用.NET 2.0 Framework时,C++ COM对象可以调用.NET 2.0 COM对象,但这样做会破坏Web应用程序.
目前,我正计划使用Visual Studio .NET 2003重新构建.NET COM对象,因此我可以将其作为.NET 1.1程序集.但如果可能的话,我宁愿不这样做.我知道我们也应该将我们的Web应用程序升级到.NET 2.0,但这需要更长的时间.
那么,我们的ASP.NET 1.1 Web应用程序是否有办法通过C++ COM对象调用.NET 2.0 COM对象?
谢谢你的任何建议.
-Dave Herrmann
我正在开发一个使用多个域的CMS,我必须在我的页面中只使用一个谷歌地图脚本.
有没有办法在没有API密钥的情况下使用谷歌地图?
否则,它不起作用?
我看到很多RAII示例类包装文件句柄.
我试图在没有运气的情况下将这些示例适用于字符指针.
我正在使用的库具有获取字符指针地址的函数(声明为get_me_a_string(char**x)).这些函数为该字符指针分配内存,并将其留给库的最终用户,以便在自己的代码中清理它.
所以,我的代码看起来像这样......
char* a = NULL;
char* b = NULL;
char* c = NULL;
get_me_a_string(&a);
if(a == NULL){
return;
}
get_me_a_beer(&b);
if(b == NULL){
if(a != NULL){
free(a);
}
return;
}
get_me_something(&c);
if(c == NULL){
if(a != NULL){
free(a);
}
if(b != NULL){
free(b);
}
return;
}
if(a != NULL){
free(a);
}
if(b != NULL){
free(b);
}
if(a != NULL){
free(b);
}
Run Code Online (Sandbox Code Playgroud)
听起来RAII就是我上面这个烂摊子的答案.有人可以提供一个简单的C++类来包装char*而不是FILE*吗?
谢谢