问题标签 [widget]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3792 浏览

javascript - 如何避免 JavaScript 小部件中的名称冲突

我有一个嵌入在其他网站上的 JavaScript 小部件(一段嵌入的 JS 和 HTML 代码)。我应该怎么做才能确保它的变量名不会与托管页面变量发生冲突?

我希望这个小部件与托管页面在同一页面上“内联”,而不是在 iframe 中,避免与托管页面发生名称冲突或与其他小部件发生冲突的最佳方法是什么?

名称冲突可能以多种方式发生:

  • JavaScript 变量名
  • JavaScript 函数名称
  • DOM 元素标识符
  • CSS 类名
  • 也许更多...

我可以想到几种避免名称冲突的方法,但我想知道是否有最佳实践或其他一般性建议。所以这是我的2c:

  1. 只需使用长且尝试唯一的名称。这是丑陋的,不是完全证明,但在概念上很简单。
  2. 使用 iframe。但如前所述,我不想使用 iframe 有几个原因。我希望小部件从页面继承样式属性(例如默认字体和背景颜色),最重要的是,我不知道小部件会有多大。它取决于实时数据,可以是任意大小。
  3. 使用匿名函数以获得更好的范围,例如 (function(){my code here})()。这个解决方案虽然很优雅,但首先仍然不适用于我 b/c,它只解决了 JS 名称冲突而不是 DOM ID 或 CSS 类名称,其次,我还使用了 jsonp,我需要为其提供回调函数name,最终需要在全局范围内,所以不能嵌套在匿名函数范围内。
  4. 在 JavaScript 中创建一个命名空间机制,它将提供 JS 变量和函数的唯一性。样式 window['my_app'][variable_name] 或 window['my_app']function_name 的东西。这也有点难看,但至少我可以控制命名空间并且可以生成保证是唯一的命名空间。
0 投票
5 回答
41526 浏览

android - 修改 Android seekbar 小部件以垂直操作

我试图让一个垂直搜索栏与模拟器一起使用,但我有点卡住了。我可以让搜索栏以我想要的方式显示,我可以让进度做我想做的事,我可以修改 onTouchEvent 让拇指垂直而不是水平移动。我不能做的是在不使用 setThumbOffset() 的情况下让拇指移动到默认的 29 个水平像素之外。这本身不是问题。问题出在我根本不了解 thumbOffset 的事实——我猜。我想我可以(正确地)调整小部件的大小,我很确定我做得不对。或者,如果我能弄清楚的话,也许我可以使用 thumbOffset 。由于我可以正确计算进度,我想我只会使用小部件的进度* (getTop() - getBottom()) 的线性函数,但这似乎并没有做到。但我无法弄清楚偏移的中心是什么。

顺便说一句,我真的不确定我在 onSizeChanged() 中所做的事情是否正常,或者以后是否会咬我的屁股。

这是 main.xml 布局:

和类(忽略调试垃圾):

0 投票
1 回答
5453 浏览

c++ - 为什么 QWidget::paintEvent 没有被调用?

我有一个简单的小部件层次结构:GraphWidget -> MotionWidget -> NodeWidget。我是 Qt 的新手,所以我不太确定某些内部是如何工作的。基本上,GraphWidget 创建一个 MotionWidget M并将M 的父级设置为自身。然后M离开并创建了一堆 NodeWidgets。然而,NodeWidgets 永远不会被绘制,它们的 paintEvent() 函数也不会被调用。

我尝试直接创建 MotionWidget,没有 GraphWidget,一切正常。那么,如果我将 GraphWidget 添加到层次结构中,为什么事情会中断呢?

这是我项目中相关代码的粘贴。我还在顶部包含了 GraphWidget::dumpObjectTree() 的输出。

编辑:忘记包含粘贴链接;)http://rafb.net/p/Zp39CF94.html

更新:我将 MotionWidget 包装到布局中。

前:

现在,后者起作用了。即一切都被绘制。那么问题就变成了……为什么?为什么它在第一种情况下不起作用但在第二种情况下起作用?

0 投票
3 回答
988 浏览

javascript - JavaScript 花絮是如何将远程小部件插入页面的?

假设我有一个 Web 服务,它允许用户将一段 JavaScript 插入到他们的页面上,当加载时,它会从我的服务器中获取一个小部件并将其插入到他们的页面中。我该怎么做,我应该使用什么技术?

document.write?

0 投票
6 回答
20756 浏览

jquery - 如何更改 ModelForm 中所有 Django 日期字段的默认小部件?

给定一组典型模型:

如何将所有DateFields 的默认小部件更改为自定义 MyDateWidget?

我问是因为我希望我的应用程序有一个用于输入日期的 jQueryUI 日期选择器。

我已经考虑过使用我的自定义小部件扩展 django.db.models.DateField 的自定义字段。这是实施这种全面变革的最佳方式吗?这样的更改将需要专门将特殊的 MyDateField 导入每个模型,这是劳动密集型的,容易出现开发人员错误(即一些模型。DateField 将通过),并且在我看来似乎是不必要的重复工作。另一方面,我不喜欢修改被认为是models.DateField 的规范版本的东西。

想法和意见表示赞赏。

0 投票
1 回答
1744 浏览

django - 如何修改 Django 中特定类型的所有内置表单字段的默认小部件?

这是关于如何更改 ModelForm 中所有 Django 日期字段的默认小部件的后续内容?.

假设您有大量模型(例如 A-ZZZ)随着其他开发人员的输入而增长,而您无法控制,并且您想要更改所有日期字段的输入方式(即通过使用 jQueryUI)。确保使用该新小部件填写所有日期字段的最佳方法是什么?

引用问题的一个建议是:

但是,这是否可以在您没有明确的 ModelForm,但 url 模式直接来自模型的情况下进行?即你的 url 配置是这样的:

其中 SomeModelA 是由 Django 在后台转换为 ModelForm 的模型(不是表单)。

目前在我的系统中,每个模型都没有表格。显式创建表单的唯一要点是添加先前解决方案中建议的 formfield_callback,但这违反了 DRY 原则,并且容易出错且劳动强度大。

我考虑过(如上一个线程中所建议的)创建我自己的具有特殊小部件的字段并使用它而不是内置的。它不是劳动密集型的,但它可能会出现错误(不过,没有什么是一个好的 grep 无法修复的)。

建议和想法表示赞赏。

0 投票
2 回答
9371 浏览

java - JAVA 中的小部件

java中的小部件是什么?

0 投票
1 回答
2694 浏览

ruby - 如何在运行时将页面添加到 Gtk Notebook 小部件?

我有以下代码:

基本上,它是一个包含按钮和笔记本小部件的窗口。当我按下按钮时,我希望能够向笔记本小部件添加新页面/标签。然而,什么也没有发生。我应该手动进行某种重绘吗?我在滥用笔记本小部件吗?如何在运行时添加选项卡?

0 投票
3 回答
3472 浏览

windows - Qt GUI 内部 - 小部件绘画?

我使用 QT 已经有一段时间了,我一直想知道有关在 Windows 中绘制 GUI 的方式。
它真的是使用 QPainter 自己绘制所有按钮、编辑框、组合框、复选框、选项卡等,还是以某种方式使用本机小部件?

它可以进行自定义样式和蒙皮的事实表明它确实使用 QPainter 绘制了所有内容,但是如何维护这种代码呢?Qt 开发人员真的对窗口系统的全部功能进行了逆向工程吗?是不是有点浪费?
另一个证据是,如果我在 Qt gui 上使用 Spy++,那么所有窗口都显示为类名等于“QWidget”。如果它使用的是本机小部件,这些不应该是“按钮”、“静态”等吗?

在其他平台上呢?它在 Max OSX 中也做同样的事情吗?

0 投票
2 回答
1992 浏览

python - 一个 wxPython 时间线小部件

我正在寻找某个 wxPython 小部件以在我的程序中使用。我希望存在这样的东西,并且您可能知道在哪里可以找到。我将尝试描述我正在寻找的功能:

想象一下像 Audacity 用来显示音轨的小部件。这是一个水平时间线,带有标尺。可以放大和缩小,滚动,并且标尺会更新以反映您在时间轴上的位置/深度。只有时间线的有限段被“占用”,即实际上包含数据。其余为空。可以用鼠标选择时间轴上的任何时间点,当然也可以让它“播放”:以指定的速度从左到右遍历时间轴。

如果您知道至少与我所描述的内容相近的东西,我会很感兴趣。


如果您想知道这个小部件的工作是什么:它是用于运行模拟的程序。程序在后台计算模拟,扩展时间线的“占用”部分。可以在时间线上选择不同的点来观察系统在某个时间点的状态,当然也可以玩模拟。

谢谢!