我们编写的桌面Widget需要提供数粗哪据更新,这里就需用用到AppWidgetProvider,它里面有一些系统回调函数。提供更新数据的 *** 作。AppWidgetProvider是BrocastReceiver的之类,也就是说它其实本质是一个广播接收器。下面我们看看AppWidgetProvider的几个重要的回调方法:
复制代码
代码如下:
class WidgetProvider extends
AppWidgetProvider
{
private static final String
TAG="mythou_Widget_Tag"
// 没接收一次广播消息就调用一次,使用频繁
public void
onReceive(Context context, Intent intent)
{
Log.d(TAG,
"mythou--------->onReceive")
super.onReceive(context,
intent)
}
// 每次更新都调用一次该方法,使用频繁
public void
onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
Log.d(TAG, "mythou--------->onUpdate")
super.onUpdate(context, appWidgetManager, appWidgetIds)
}
//
没删除一个就调用一次
public void onDeleted(Context context, int[] appWidgetIds)
{
Log.d(TAG, "mythou--------->onDeleted")
super.onDeleted(context, appWidgetIds)
}
//
当该Widget第一次添加到桌面是调用该方法,可添加多次但只第一次调用
public void onEnabled(Context
context)
{
Log.d(TAG,
"mythou--------->onEnabled")
super.onEnabled(context)
}
// 当最后一肆顷个该Widget删除是调用该方法,注意是最后一个
public void
onDisabled(Context context)
{
Log.d(TAG,
"mythou--------->onDisabled")
super.onDisabled(context)
}
}
其中我们比较常用的是onUpdate和onDelete方法。我这里刷新时间使用了一个Service,因为要岩雹码定时刷新服务,还需要一个Alarm定时器服务。下面给出我的onUpdate方法:
复制代码
代码如下:
public void onUpdate(Context context,
AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
super.onUpdate(context, appWidgetManager, appWidgetIds)
Time time = new
Time()
time.setToNow()
//使用Service更新时间
Intent intent = new
Intent(context, UpdateService.class)
PendingIntent pendingIntent =
PendingIntent.getService(context, 0, intent, 0)
//使用Alarm定时更新界面数据
AlarmManager alarm =
(AlarmManager)context.getSystemService(Context.ALARM_SERVICE)
alarm.setRepeating(AlarmManager.RTC, time.toMillis(true), 60*1000,
pendingIntent)
}
首先,如果没有安装python和PyQt软件的请先直接搜索下载并安装。python是一个开源软件,因此都是可以在网上免费下载的,最新版本即可。下载完成后,我们先打开PyQt designer。2
打开后,首先是一个默认的新建窗口界面,在这里我们就选择默认的窗口即可。
3
现在是一个完全空白的窗口。第一步我们要先把所有的设计元素都拖进这个窗口。我们先拖入一个“Label”,就是一个不可编辑的标签。
4
随后我们再拖入一个可以编辑的“Line Edit”
5
最后我们拖入最后一个元素:“PushButton”按钮,也就是平时我们所点的确定。
6
目前我们已经把所有所需要的元素都拖入了新建的窗口。对于每一个元素,我们都可以双击进行属性值的修改,此时我们仅需要双击改个名字即可
7
此时我们已经完成了一半,接下来需要对动作信号进行 *** 作。我们需要先切入编辑姿芹简信号的模式
8
此时把鼠标移动到任意元素,都会发现其变成红色,代表其被选中。
9
当我们选中pushbutton后,继续拖动鼠标指向上面的line edit,会发现由pushbutton出现一个箭头指向了line edit,代表pushbutton的动作会对line edit进行 *** 作。
10
随即会d出一个配置连接窗口。左边的是pushbutton的 *** 作,我们选择clicked(),即点击pushbutton。
右边是对line edit的 *** 作,我们选择clear(),即清楚line edit中的内容。
最后我们点击确定。
保存完成后,我们在PyQt中的 *** 作迹裤就已经完成了。保存的文件名我们命名为test,PyQt生成的设计文件后缀是.ui。
然后我们需要把.ui文件转换成可编译的.py文件,我们需要用到PyQt提供的pyuic4命令来完成转换。这是一个DOS命令,因此我们需要调出DOS *** 作界面。打开开始菜单,找到附件中的运行。
在运行中输入cmd,确定后即可打开DOS界面。
在DOS界面下,我们需要定位到刚才保存的.ui文件的位置,如果是默认的话,会保存在C:\Python27\Lib\site-packages\PyQt4,定位的过程如图所示。转换成.py文件的命令是:pyuic4 test.ui -o test.py
转换命令执行后,会生成一个test.py的文件,如图所示
最后我们需要对生成的python文件加入头文件和主函数,就可以生成一个完整的GUI程序了!首先是在整个程序的最开头加入import sys,如图所示。
另外,在程序的末尾,加入如图所示的主函数代码。主函数会调用我们再PyQt里已经完成的生成元素的函数以及配置连接函数,因此我们只需要加上主首薯函数来调用他们即可。
保存后,双击我们编辑完成的python文件,就会d出我们刚才设计的GUI界面啦!这就是我们所完成的第一个用python语言写的GUI程序啦!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)