我正在构建一个小部件,我一直在使用iframe来呈现其中的内容.在某些时候,我可能会开始提供第三方HTML和JS,所以我认为iframe是个好主意.
它确实使小部件javascript更复杂,我担心这可能不是最好的实现.
你有什么建议吗?听听其他人对iframe的看法会有很大的帮助.
一直在寻找答案,但一切似乎都模糊或不清楚.
无论如何,只想知道功能的目的是什么:
widgetPerformUpdateWithCompletionHandler
Run Code Online (Sandbox Code Playgroud)
在今天的小部件中.
根据Apple的说法:
调用此方法可为窗口小部件提供更新其内容并在快照等操作之前重绘其视图的机会.当窗口小部件完成更新其内容(并在必要时重绘)时,窗口小部件应调用完成处理程序块,并传递相应的NCUpdateResult值.
快照什么时候发生?每当我调试扩展时,widgetPerformUpdateWithCompletionHandler总是在loadView之后被调用.那么当我已经在loadView中加载信息时,在此方法中显式重新加载信息的目的是什么?
根据这个网站:http://www.karlmonaghan.com/tag/today-widget/
在TodayViewController中,有两个地方需要从网络加载数据 - 创建窗口小部件时以及调用widgetPerformUpdateWithCompletionHandler时.对于前者,我在viewDidLoad中加载帖子,以便在窗口小部件显示时它们应该准备就绪.当iOS认为小部件在首次显示后将显示给用户时,将调用widgetPerformUpdateWithCompletionHandler,使小部件有机会更新显示的帖子.
与上述问题相同.
我有一个JS脚本(小部件),它被添加到其他网站.从技术上讲,它类似于谷歌分析.我的问题是:你有什么建议来确保健壮性,防止代码干扰网站上的其他代码,避免用户的错误等.一般来说,我应该知道如何编写专业级小部件.
注意:我不能使用任何JS库,如jquery等.
我有一个自定义TagField表单字段.
class TagField(forms.CharField):
def __init__(self, *args, **kwargs):
super(TagField, self).__init__(*args, **kwargs)
self.widget = forms.TextInput(attrs={'class':'tag_field'})
Run Code Online (Sandbox Code Playgroud)
如上所示,它使用TextInput表单字段小部件.但在管理员中我希望它使用Textarea小部件显示.为此,有formfield_overrides钩子,但它不适用于这种情况.
管理声明是:
class ProductAdmin(admin.ModelAdmin):
...
formfield_overrides = {
TagField: {'widget': admin.widgets.AdminTextareaWidget},
}
Run Code Online (Sandbox Code Playgroud)
这对表单字段小部件没有影响,tags仍然使用TextInput小部件进行呈现.
任何帮助深表感谢.
-
omat
所以我有一些构建Android应用程序的经验.但是现在我想构建一个用于Android的小部件,它将位于主屏幕上并显示一个按钮,当按下该按钮时它会播放声音.我一直在网上看有关如何设置Android小部件的教程,但我似乎无法弄明白.有没有关于如何制作独立小部件的好教程,这个简单或我可以从哪里开始?彼得,先谢谢你
我是Dojo Toolkit的新手.我收到了错误
Tried to register widget with id=myButton but that id is already registered
Run Code Online (Sandbox Code Playgroud)
每当我尝试加载dojo内容两次(意味着我通过jQuery.Load将HTML内容加载到容器div中).有没有办法在dojo中取消注册已注册的小部件?我已经看过一些例子,但我并没有真正让它们发挥作用.
我的按钮:
<button dojoType="dijit.form.Button" id="myButton">button</button>
Run Code Online (Sandbox Code Playgroud) 我有一个针对Android 2.1创建的小部件,它在市场上销售很好.
我有一个用户抱怨他买了它,它从未出现在他的Android 4.0设备上.
我加载了4.0模拟器,从Eclipse运行它,它报告了一个成功的安装,事实上我可以看到它列在"小部件预览"应用程序中,我可以在那里运行它看起来很好,但它没有显示在"Widgets"下的任何地方 - 我实际上找不到它将它拖到主屏幕!我认为这与用户看到的一样.
知道这里发生了什么吗?为什么它在2.1中没问题,但即使在成功安装后也没有出现在4.0的列表中?
这是我的layout\widget.xml文件,如果有任何帮助:
<RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:layout_width="wrap_content" android:id="@+id/blankspot" android:layout_height="5dp" android:gravity="center" android:shadowDy="1" android:shadowDx="1" android:layout_centerHorizontal="true"></TextView>
<ImageButton android:layout_below="@+id/blankspot" android:layout_width="60dp" android:layout_height="60dp" android:id="@+id/widgetIconButton" android:layout_centerHorizontal="true" android:scaleType="centerCrop" android:src="@drawable/volumeprofilesplus" android:background="@null"></ImageButton>
<ImageView android:layout_width="60dp" android:layout_height="20dp" android:id="@+id/override" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:scaleType="fitXY" android:background="@null" android:src="@drawable/overredcaps" android:visibility="invisible"></ImageView>
<ImageButton android:layout_below="@+id/widgetIconButton" android:layout_width="70dp" android:layout_height="30dp" android:id="@+id/widgetSettingsButton" android:layout_centerHorizontal="true" android:scaleType="fitXY" android:src="@drawable/settings" android:background="@null"></ImageButton>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
和xml\widget_provider.xml:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="72dip"
android:minHeight="72dip"
android:updatePeriodMillis="0"
android:initialLayout="@layout/main" >
</appwidget-provider>
Run Code Online (Sandbox Code Playgroud) 我试图Entry在用户使用Tkinter按下按钮后清除小部件.
我试过使用ent.delete(0, END),但是我得到一个错误,说字符串没有属性delete.
这是我的代码,我收到错误real.delete(0, END):
secret = randrange(1,100)
print(secret)
def res(real, secret):
if secret==eval(real):
showinfo(message='that is right!')
real.delete(0, END)
def guess():
ge = Tk()
ge.title('guessing game')
Label(ge, text="what is your guess:").pack(side=TOP)
ent = Entry(ge)
ent.pack(side=TOP)
btn=Button(ge, text="Enter", command=lambda: res(ent.get(),secret))
btn.pack(side=LEFT)
ge.mainloop()
Run Code Online (Sandbox Code Playgroud) 制作自定义小部件(使用Qt)背后的过程是什么?看起来......好吧......难看?
我知道制作一个"自定义小部件",将列表框和按钮拼凑成一个,这是非常微不足道的,但我怎样才能制作看起来更像这样的东西:
我做了一些粗略的模型,基本上使用PNG背景(我在Photoshop中制作),其中基本元素如QLabel放在它们之上,但我不认为这是我应该这样做的.我知道Qt支持CSS - 这是人们用来创建实际看起来不错的小部件吗?我需要在paintEvent方法中工作吗?OpenGL的?
试图搜索任何"自定义小部件qt"相关的东西只是给了我很多关于如何将它们导入设计器等的信息 - 所以任何线索都会受到赞赏.
谢谢!
我想在不使用composer的情况下使用Yii2 Framework手动安装Select 2扩展小部件.
我完成了以下步骤,但它不起作用.
1)添加yii2-widget-select2到vendor/yii-soft
2)在我的代码中添加了以下代码yii-soft/extensions.php:
'yiisoft/yii2-widget-select2' => array(
'name' => 'yiisoft/yii2-widget-select2',
'version' => '2.0.3.0',
'alias' =>
array(
'@yii/kartik' => $vendorDir . '/yiisoft/yii2-widget-select2',
),
),
Run Code Online (Sandbox Code Playgroud)
3)以视图形式添加显示:
use kartik\select2\Select2;
<?php echo Select2::widget([
'model' => $model,
'attribute' => 'state_2',
'data' => $data,
'options' => ['placeholder' => 'Select a state ...'],
'pluginOptions' => [
'allowClear' => true,
],
]); ?>
Run Code Online (Sandbox Code Playgroud)
它显示以下错误:
PHP致命错误 - yii\base\ErrorException.找不到类'kartik\select2\Select2'
widget ×10
android ×2
javascript ×2
android-4.0-ice-cream-sandwich ×1
composer-php ×1
django ×1
django-admin ×1
dojo ×1
iframe ×1
ios8 ×1
overriding ×1
php ×1
python ×1
qt ×1
tkinter ×1
toolkit ×1
yii2 ×1