我想使用perl在屏幕中间对齐此菜单,并且还希望在屏幕中心输入。 菜单代码如下
while(1){ //
printf "Please select from one of expense catagories";
printf "1 - House \n";
printf "2 - Grocery \n";
printf "3 - Car \n";
printf "4 - Hospital \n";
printf "5 - Others \n";
printf "q - quit \n";
my $input = <STDIN>;
if ($input =~ /q/) {
exit;
}//
我尝试使用标签但是当我调整屏幕大小时它没有正确对齐。所以想知道在屏幕上特定位置打印的方式。
目前的输出如下:
Please select from one of expense catagories
1 - House
2 - Grocery
3 - Car
4 - Hospital
答案 0 :(得分:0)
你可以使用Curses :: UI包,并且(如果你在下面使用ncurses),处理生成的KEY_RESIZE输入。
在 How to get with Curses the window-size from a resized window? 中提出了类似的问题,其中接受的答案似乎与此一致。
答案 1 :(得分:0)
尝试使用class Button extends React.Component {
constructor() {
super();
this.state = {
shouldWiggle: false
};
}
handleCallback() {
this.setState({shouldWiggle: !this.state.shouldWiggle});
}
render() {
let cls = this.state.shouldWiggle ? 'icon-up wiggle': 'icon-up';
return (
<div>
<span className='highlight'>{this.props.summary}</span>
<a
className='link'
onClick={this.handleCallback.bind(this)}
>
<span ref={(c) => this.icon = c} className={cls}>ad</span>
</a>
</div>
);
}
}
命令获取当前终端中的列数,并使用该值确定菜单的位置。 (我们可以使用printf进行左/右填充。)
在打印菜单之前,请每次使用stty -a
命令确定屏幕宽度,以便相应地对齐菜单。