我正在写一个时钟程序。我已经构建了代码,但是在创建GUI时遇到了麻烦。我有条目接受输入并将它们发送到外部函数,并具有用于计算的按钮事件处理。
运行程序,我没有更新时间的标签。我想知道它是否与我的textvariables有关。
MasterDetailPage
更新了代码。
<local:SearchPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:YOURNAMESPACE"
x:Class="YOURNAMESPACE.DetailPage"
Title="Detail 1">
<ContentPage.Content>
<StackLayout>
<Label Text="Welcome to Xamarin.Forms!"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
</StackLayout>
</ContentPage.Content>
</local:SearchPage>
答案 0 :(得分:0)
您的代码存在一些问题。您正在重新定义printv
,timeLabel
,并在while循环的每一步创建一个新的Tk()
对象。更重要的是,您将printv
定义为StringVar
,但会立即将其重新定义为字符串。您应该在while循环的外部之后定义每个属性,然后使用set()
的{{1}}方法。
这是Tkinter中一个非常基本的计时器。首先,您应该不使用printv
或time.sleep
循环。 while
函数已经是一个while循环,并且大多数tkinter对象都有一个mainloop
方法,允许您在一个时间窗口(以毫秒为单位)后调用事件。
请注意,我创建了一个类来封装整个UI。所有变量都存储在类中,并从其方法更新。时间在脚本本身内设置(当前为1小时20分10秒),但很容易修改以接受来自命令行或UI中文本字段的args。
.after()