我有一个显示文本字段的基本小部件。我试图弄清楚当用户单击小部件本身时如何启动网站 url。我似乎无法找到有关此事的任何代码。
我正在开发一个 android 小部件。在小部件中,我有一个文本字段和两个按钮。当我按下 button1 时,我希望文本字段显示某个文本,例如“one”,如果我单击 button2,则文本字段将显示为“2”。
onUpdate() 看起来像这样:
@Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){ super.onUpdate(context, appWidgetManager, appWidgetIds);
remoteViews = new RemoteViews(context.getPackageName(), R.layout.activity_main);
Intent intent = new Intent(context, CalculatorReceiver.class);
intent.setAction(ACTION_WIDGET_RECEIVER);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
remoteViews.setOnClickPendingIntent(R.id.one, actionPendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews); }
Run Code Online (Sandbox Code Playgroud)
onReceive() 方法如下所示:
@Override public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if(intent.getAction().equals(ACTION_WIDGET_RECEIVER)){
Toast.makeText(context, "Hi I'm 1", Toast.LENGTH_LONG).show();
}}
Run Code Online (Sandbox Code Playgroud)
现在,在小部件中,我只能在按下按钮时显示 Toast,但我想获取 textView 并更改其值。如何获取和更改 textView?
我有一个QGraphicsScene用于绘图,我现在想在其中“添加” QWidgeta QGraphicsItem(显示在项目顶部,当然可以移动)。
这怎么可能实现?有没有QGraphicsItem, 可以用作 Widget 容器?
我在这个词上发现了一些相互矛盾的定义。在http://developer.android.com/reference/android/view/View.html 上,作者将 widgets 定义为“View 是 widgets 的基类,用于创建交互 UI 组件(按钮、文本框等) .)”,主要用于创建交互式 UI 组件。然而,在另一个 StackOverFlow 问题上,究竟什么定义了“小部件”?,答案是“可以从主屏幕与之交互的应用程序”。我的问题是,就 android 而言,术语小部件是指用于创建 ui 组件的工具还是 ui 组件本身?任何人都可以澄清这一点吗?
我有一个字符串列表,我想在Tkinter文本小部件中打印这些字符串,但我无法在新行中插入每个字符串。
我试过这个但没有用:
ls = [a, b, c, d]
for i in range(len(lst)):
text.insert(1.0+i lines, ls[i])
Run Code Online (Sandbox Code Playgroud) 请注意,通过小部件,这不包括画布项目(不是小部件)。
我的目标是构建两个类:一个生成画布小部件的项目,另一个生成小部件本身。这是为了确保我可以在窗口中移动东西并在重新打开时将其保留在那里。我已经为画布项目做到了这一点。你看,画布小部件实际上返回一个实际的 ID,它对于受尊重的项目保持不变,因此我可以引用它,它是坐标。
但是,对于小部件本身,似乎没有这种获取 ID 的方法。我试过widget.getint(),widget.getvar()等。 我也试过 repr(widget)and id(widget),但是这两个值在重新打开时都会发生变化,我认为创建了新的小部件,其中变量仅指新创建的小部件与刚刚销毁的小部件相比,即使它具有相同的属性。
我还尝试将所述小部件放在父窗口中,如窗口或框架,但这些小部件本身不会为其各自的子小部件分配任何唯一值。
所以基本上,我可以获得任何给定小部件的唯一值,但没有一个是恒定的。顺便说一下,这可以是任何值,因为我只是将它转换为字符串,将其附加到字典,并将坐标分配给所述 str 以引用特定的小部件。
预先感谢您的任何指导,非常感谢:)
我创建了一个 Image 对象,我想设置它的大小,但我不能这样做。这是代码,我创建了一个图像的光标对象,然后我尝试设置它的大小,但是 self.size = (10,10) 对它没有影响。为什么它不起作用?
#!/usr/bin/kivy
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.uix.button import Button
from kivy.core.window import Window
class Root(FloatLayout):
pass
class Cursor(Image):
def __init__(self, **kwargs):
super(Cursor, self).__init__(**kwargs)
self.source = 'crosshair.png'
self.size = (10,10)
self._keyboard = Window.request_keyboard(self._keyboard_closed, self, input_type='text')
self._keyboard.bind(on_key_down=self._on_keyboard_down)
def _keyboard_closed(self,**kwargs):
print "hi"
def _on_keyboard_down(self,keyboard, keycode, text, modifiers):
if keycode[1] == 'up': self.y += 10
elif keycode[1] == 'down': self.y -= 10
elif keycode[1] == 'left': self.x -= 10 …Run Code Online (Sandbox Code Playgroud) 我正在尝试自动清除Entry父小部件中的所有小部件。
import Tkinter
import re
root=Tkinter.Tk()
E1=Tkinter.Entry(root)
E1.pack()
E2=Tkinter.Entry(root)
E2.pack()
L1=Tkinter.Label(root,text='Label1')
L1.pack()
Run Code Online (Sandbox Code Playgroud)
我遇到了 3 个问题
wlist[0]以下与shell输出不同? 例如:
import Tkinter
import re
root=Tkinter.Tk()
E1=Tkinter.Entry(root)
E1.pack()
E2=Tkinter.Entry(root)
E2.pack()
L1=Tkinter.Label(root,text='Label1')
L1.pack()
Run Code Online (Sandbox Code Playgroud)
例如
>> re.search(r'Entry',wlist[0])
<< No output >>
Run Code Online (Sandbox Code Playgroud)
Entry部件,你将如何让部件对象本身执行delete方法调用?例如:
## Assuming I have a function to to clear the entry
## How would I pass the object from the pattern match in #2 to this function?
def clear_entry(objEntry):
objEntry.delete(0,Tkinter.END)
Run Code Online (Sandbox Code Playgroud) 我在我的根小部件中绑定到 Window.on_key_down 来处理 android 的后退按钮。
ModalView(及其子 Popup)并不是真正的模态,它们根本不处理键盘,因此也没有处理后退按钮。
如果我从 Popup 继承并绑定到返回 True 的 Window.on_key_down,那么我可以从我的继承类中处理后退按钮。在这一点上,我可以在 on_dismiss 中取消绑定或删除小部件(似乎无法使删除可靠地工作,但这不是一个单独的问题)。
问题是这将我在所有屏幕(我使用屏幕管理器)而不是在我的根小部件中对后退按钮的处理分开。所以我正在寻找一种方法来从我的根小部件检查当前是否有任何弹出窗口打开(最好不要遍历小部件树,因为它不会很好地扩展)。请就我在下面考虑的选项以及任何其他建议提出建议:-
在根小部件中初始化了一个弹出小部件,所有屏幕都将在必要时修改/open()。当然,这将需要绑定/取消绑定该弹出窗口的按钮。然后,根小部件可以轻松检查该单个对象以查看其是否打开。
在从弹出窗口小部件继承的类中处理键盘,并在最后解除键盘绑定。将返回按钮处理拆分为多个文件/屏幕的问题,以及在长时间使用应用程序时构建旧的弹出窗口小部件的问题。
???
我正在开发一个 Android 屏幕小部件。默认大小(如果我将 Widget 从 Widget-List 拖放到我的主屏幕上)设置为 3x3,但我没有找到可以更改它的位置。谁能解释我如何在另一个值上设置默认值?