好的,所以我不太确定鞋子里有很多东西,但到目前为止,我的试错方法在这个方面都没有让我失望.
我有一个类需要一段时间进行某种计算,我希望在完成时为用户提供一个进度条.如果传递一个块,我的计算密集型方法会产生完整百分比:
class MathyStuff
def initialize()
end
## Some expensive, time consuming method which yields it's percent complete
def expensiveMethod(&block)
0.upto(100) do |i|
0.upto(100000) do |j|
k = j;
end
yield i.to_f/100;
end
end
end
Run Code Online (Sandbox Code Playgroud)
这里要什么我喜欢的鞋说:
require 'MathyStuff.rb'
Shoes.app do
@myMathyStuff = MathyStuff.new();
button("Do expensive mathy thing...") do
window() do
@progress = progress();
@myMathyStuff.expensiveMethod() {|percent| @progress.fraction = percent;}
end
end
end
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.我已尝试使用/不使用窗口调用,我已尝试以各种方式使用animate(),我甚至尝试调用Thread.new并将其传递给窗口块,让它们通过Shoes.APPS()[0]进行交换./setPercent方法; 似乎没有什么工作正常.
也许我没有按照它的使用方式使用进度条.再说一次,进度条还有什么用呢?;-)
我对进度条显示值有疑问.
我有这个主线程
private void button1_Click(object sender, EventArgs e)
{
progress prog = new progress();
progress.progressEvent += new progress.progressEventHandler(progressEvent);
for(int i=0;i<100;i++)
{
Thread.Sleep(100);
prog.incA();
}
}
void progressEvent(object sender)
{
if (progressBar1.InvokeRequired)
{
//Tady mi to caka az kym nedobehne cyklus for a pak zacne tohleto fungovat
progressBar1.Invoke(new ChangeProgressBarValue(ProgressStep));
}
else
{
ProgressStep();
}
}
public void ProgressStep()
{
progressBar1.PerformStep();
}
public class progress
{
private ThreadStart ts;
private Thread th;
private bool status = true;
public delegate void progressEventHandler(object sender); …
Run Code Online (Sandbox Code Playgroud) 我有一个正在研究的MATLAB GUI,我想创建一个进度或状态栏,向用户显示某个脚本运行多长时间或相对于它完成时运行的位置.
我是这个GUI的新手,任何人都对如何做到这一点有任何想法?
在MATLAB的文件交换中,我不理解任何示例(也就是不知道如何添加到我的代码中).
谢谢,
我
似乎在Windows 7中,在设置进度条的值时会发生一些动画.设置值似乎不等待动画完成.有没有办法通知进度条何时完成动画?
我有一个示例程序.请参阅评论.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;
namespace Testing
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var form = new Form1();
form.Run();
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void Run()
{
Thread thread = new Thread
(
delegate()
{
ProgressBarMax = 10;
ProgressValue = 0;
for (int i = 0; i < 10; i++)
{
Thread.Sleep(1000);
ProgressValue++;
}
}
); …Run Code Online (Sandbox Code Playgroud) 我正在使用plyr包来处理列表和数据帧.我注意到以下行为:
例1 -
list_2 <- llply(list_1, function_1, .progress='text')
Run Code Online (Sandbox Code Playgroud)
这按预期工作.它从list_1生成list_2,其中function_1应用于每个list_1元素,我看到进度条.
例2 -
list_3 <- dlply(list_2, function_2, .progress='text')
Run Code Online (Sandbox Code Playgroud)
这也适用于我在list_3中获得我期望的结果,但是,我没有得到进度条.
总之,为什么进度条不适用于dlply但适用于llply.(它也适用于ldply).
我可能在相同的代码中盯着太长时间,但我似乎无法让进度条在下面的代码中工作.有人有任何提示吗?
private void doBackgroundTIFConverter(object sender, DoWorkEventArgs e)
{
string tifFileName = (string)e.Argument;
bm = new Bitmap(tifFileName);
int total = bm.GetFrameCount(FrameDimension.Page);
document.Open();
cb = writer.DirectContent;
for (int k = 0; k < total; ++k)
{
backgroundTIFConverter.ReportProgress(k / total * 100);
bm.SelectActiveFrame(FrameDimension.Page, k);
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bm, ImageFormat.Bmp);
// scale the image to fit in the page
img.ScalePercent(72f / img.DpiX * 100);
img.SetAbsolutePosition(0, 0);
cb.AddImage(img);
document.NewPage();
}
bm.Dispose();
document.Close();
}
private void progressBackgroundTIFConverter(object sender, ProgressChangedEventArgs e)
{
splitProgressBar.Value = e.ProgressPercentage;
}
private …Run Code Online (Sandbox Code Playgroud) 在其中一个谷歌应用程序中,我注意到可爱的圆形进度条,它像两个分开的部分一样动画一个到另一个.好像我前一段时间在gmail应用程序中看到它,但也许我错了.
即时通讯使用此处找到的代码创建一个进度圈:http://codepen.io/JMChristensen/pen/Ablch
但是我不希望它变得那么大,所以我将内圈和外圈的圆半径改为40而不是90.问题是在我这样做后,显示百分比的圆圈停止工作,无论我输入的百分比是多少圈子没有变化,总是看起来是100%.
这是html:
<h1>SVG Circle Progress</h1>
<h2>Based off of CSS3 circle progress bars</h2>
<div id="cont" data-pct="100">
<svg id="svg" width="200" height="200" viewPort="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg">
<circle r="40" cx="100" cy="100" fill="transparent" stroke-dasharray="565.48" stroke-dashoffset="0"></circle>
<circle id="bar" r="40" cx="100" cy="100" fill="transparent" stroke-dasharray="565.48" stroke-dashoffset="0"></circle>
</svg>
</div>
<label for="percent">Type a percent!</label>
<input id="percent" name="percent">
Run Code Online (Sandbox Code Playgroud)
我认为它与在js中计算的stroke-dashoffset有关,但我无法弄清楚它背后的数学.