我正在使用 Kivy 应用程序中的文本输入,但我不知道该怎么做。事实是我想做一个textinput显示您可以输入的值。我知道它可能是 text='...' 但我希望在选择文本输入时删除预定义的文本。我不知道 Kivy 是否可以做到这一点,因为我想始终显示 textinput 为空的列表,其中包含您可以输入的数字。函数 func 仅用于保存小部件的输入。我不想用 kv 语言,所以我这样做是因为洞应用程序更好:
from kivy.uix.textinput import TextInput
textinput = TextInput(text='You can Input 1,2,3,4',multiline=False)
textinput.bind(on_text_validate=func)
Run Code Online (Sandbox Code Playgroud) 我有一个分配给 QChartView 的 QChart。在我一直关注的示例中,图表在 main.cpp 中显示为:
window.setCentralWidget(chartView);
Run Code Online (Sandbox Code Playgroud)
在我的项目中,我想利用设计器,因此创建了一个自定义小部件,但它没有显示 QChart。我找到了一个例子,他们分配了他们将视图分配给布局然后设置布局,如下所示:
mainLayout = new QGridLayout;
mainLayout->addWidget(chartView, 0, 0);
setLayout(mainLayout);
Run Code Online (Sandbox Code Playgroud)
但这似乎扰乱了窗口中所有其他小部件的布局。如何让自定义小部件显示我的图表视图?
谢谢!
我想在不使用 JavaScript 的情况下创建自定义散景小部件,即不遵循有关添加自定义小部件的散景文档。下面的示例演示了在 PyQt4 中创建自定义小部件(我经常使用它),以及我希望在散景中工作的内容以及我收到的错误消息。
有没有其他方法可以在不使用 JavaScript 的情况下在散景中创建自定义小部件?具体来说,我正在尝试创建一个自定义滑块,每侧带有小 - 和 + 按钮,将滑块递增/递减 1 步。我想在许多应用程序中使用这个自定义小部件,所以我希望它定义为自己的类,并且 on_change 方法链接到滑块 on_change 方法。我想制作散景中的其他自定义小部件(没有 JS!),我想知道这是否可能。
# this works as a base to develop custom PyQt4 widgets
from PyQt4 import QtGui
import sys
class NewWidget(QtGui.QWidget):
def __init__(self):
super().__init__()
app = QtGui.QApplication([])
widget = NewWidget()
widget.show()
sys.exit(app.exec_())
# this does not work as a base to develop custom bokeh widgets
# when run, a tab opens with the message
# Bokeh Error
# Model `NewWidget' does …Run Code Online (Sandbox Code Playgroud) 我尝试了很多解决方案,但几周后我无法解决这个问题:为什么“notifyappwidgetviewdatachanged”不起作用?如何更新放置在我的小部件上的列表视图?我哪里错了?
这是我的课。
小部件提供者:
public class Widget_Provider extends AppWidgetProvider
{
public static final String ACTION_MOSTRAORARI = "fACTION_TOAST";
public static final String EXTRA_STRING = "EXTRA_STRING";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
for (int appWidgetId : appWidgetIds)
{
RemoteViews views = updateWidgetListView(context, appWidgetId);
final Intent onItemClick = new Intent(context, Widget_Provider.class);
onItemClick.setAction(ACTION_MOSTRAORARI);
onItemClick.setData(Uri.parse(onItemClick.toUri(Intent.URI_INTENT_SCHEME)));
final PendingIntent onClickPendingIntent = PendingIntent.getBroadcast(context, 0, onItemClick, PendingIntent.FLAG_UPDATE_CURRENT);
views.setPendingIntentTemplate(R.id.myStopList, onClickPendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
super.onUpdate(context, appWidgetManager, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 ipywidget 选项卡中显示交互功能。下面的代码是我尝试这样做,但我只看到下拉列表但未显示图。我还单独包含了 interact() 函数,以显示它在选项卡外的工作方式。非常感谢您对此的任何帮助。谢谢你。
from ipywidgets import *
import seaborn.apionly as sns
df = sns.load_dataset('iris')
#plot
def plot_image(x):
data = df
if x != 'Select':
xplot = data[x]
sns.distplot(xplot)
plt.show()
#define widgets
x = widgets.Dropdown(
options=df_cols,
value=df_cols[0],
description='X'
)
x.set_title = 'x'
#assign widgets to tabs
tab_visualise = widgets.HBox([x])
#create tabs
tab_nest = widgets.Tab()
tab_nest.children = [tab_visualise]
tab_nest.set_title(0, 'Visualise')
tab_nest
#interact function in isolation
interact(plot_image, x = x)
Run Code Online (Sandbox Code Playgroud) 我对 PyQt 很陌生,我发现在窗口中订购小部件非常困难。
我有一个实时更新的绘图,一个每次用户单击绘图时都会更新的表格,以及两个按钮(开始/停止)。
当前布局的行为方式如下:
我希望它看起来像这样:
其中“其他小部件”对应于我将在此工作时添加的未来小部件(例如滑块或下拉列表)。桌子也应该尽可能的薄,以最大化地块的大小并且不让桌子占据不必要的空间。我当前的代码如下(它是独立的):
import sys
import numpy as np
from matplotlib.backends.qt_compat import QtWidgets
from matplotlib.backends.backend_qt5agg import FigureCanvas
from matplotlib.figure import Figure
def onclick(event):
global clicks
clicks.append(event.xdata)
return
class ApplicationWindow(QtWidgets.QMainWindow):
def __init__(self):
super(ApplicationWindow, self).__init__()
self._title = 'Prueba real-time'
self.setWindowTitle(self._title)
self._main = QtWidgets.QWidget()
self.setCentralWidget(self._main)
layout = QtWidgets.QHBoxLayout(self._main)
dynamic_canvas = FigureCanvas(Figure(figsize=(10, 10)))
layout.addWidget(dynamic_canvas)
self._dynamic_ax = dynamic_canvas.figure.subplots()
dynamic_canvas.figure.canvas.mpl_connect('button_press_event', onclick)
self._dynamic_ax.grid()
self._timer = dynamic_canvas.new_timer(
100, [(self._update_window, (), {})])
self._timer.start()
button_stop = QtWidgets.QPushButton('Stop', self)
layout.addWidget(button_stop)
button_stop.clicked.connect(self.button_pressed)
button_start = QtWidgets.QPushButton('Start', self)
layout.addWidget(button_start)
button_start.clicked.connect(self.button_pressed) …Run Code Online (Sandbox Code Playgroud) 我目前正在制作一个带有卡片小部件列表的应用程序。这是一个代码片段:
new GestureDetector(
onLongPress: () {
showAlert();
//pops up an AlertDialog
},
child: new Card(child: new Text("Hello"))
)
Run Code Online (Sandbox Code Playgroud)
是否可以使卡片小部件可触摸,以便用户可以感觉到/看到卡片被(长)点击?我正在搜索“InkWell-something 结果”。
编辑:当我长按它们时,我想在我的卡片小部件上产生飞溅效果。我的意思是飞溅效果的一个例子在下面的 GIF 中给出:
在 Flutter 测试中如何获取 Widget 的位置?理想情况下是小部件的中心,但左上角坐标也可以。
这是我的测试并尝试在屏幕上查找 Widget 位置的函数。
testWidgets('Pin is in center of screen', (WidgetTester tester) async {
await _setUp(tester); // Does setup
final findPin = find.byKey('pin');
final pinLocation = _getLocation(findPin.evaluate().first);
print(ui.window.physicalSize);
expect(pinLocation.dx, 1200.0);
expect(pinLocation.dy, 900.0);
});
Offset _getLocation(Element element) {
return (element.findRenderObject() as RenderBox).localToGlobal(Offset.zero);
}
Run Code Online (Sandbox Code Playgroud)
对于印刷ui.window.physicalSize(这里ui是dart:ui包)告诉我的尺寸Size(2400.0, 1800.0)。但是,当我在测试中设置这些中点时,我的测试失败了,说大小实际上是 395.0 和 305.0。我的小部件的大小只有 30.0 x 30.0,甚至 395 +/- 30 也不等于 1200 范围内的任何东西。
在我的测试中,我然后将我的小部件包裹在一个预定义宽度 (400) 和高度 (300) 的容器中,这不是它在实际应用程序中的样子,但为了测试它更接近 - 给出一个“中心” 195 和 155,而它应该是 200 和 …
我只是想学习颤振,颤振演示代码中有一段代码,你在创建一个新的颤振项目时得到的,我不明白:
标题:新文本(widget.title)
我不明白小部件来自哪里,因为它没有在任何地方声明、定义或初始化。它指的是这个文本:
home: new MyHomePage(title: 'Flutter Demo Home Page')
但为什么,这与上下文有关吗?如果它是预定义的,我可以如何以及在哪里使用它。由于 flutter 中的所有内容都是 Widget,因此很难向 Google 提出这个问题。
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> …Run Code Online (Sandbox Code Playgroud) 我在 Flutter 中遇到了一个问题:以下断言在构建 TextField 时被抛出,这让我在短时间内遇到了一个奇怪的问题!
对于代码或错误的任何澄清,请在下面评论,我会在几分钟内回复,因为我迫不及待地解决这个问题并没有太多想法继续前进!!
我是一个非常接近 Flutter 编程的意大利男孩,我从这门课程开始。你是我唯一可以称呼的人。我会向任何能解决这个“问题”的人提供玛格丽塔披萨;)!!!
Andoid Studio返回我的错误是这样的:
I/flutter (26182): 以下断言被抛出构建 TextField(controller: I/flutter (26182): TextEditingController#e1688(TextEditingValue(text: ??, selection: TextSelection(baseOffset: -1, I/flutter (26182)) :extentOffset:-1,affinity:TextAffinity.downstream,isDirectional:false),组合:I/flutter(26182):TextRange(开始:-1,结束:-1))),启用:true,装饰:InputDecoration(hintText) :“Materia”),I/flutter(26182):自动更正:true,强制执行最大长度,onTap:空,脏,状态:_TextFieldState#73fdb):I/flutter(26182):找不到材料小部件。I/flutter (26182):TextField 小部件需要一个 Material 小部件祖先。I/flutter (26182):在材料设计中,大多数小部件在概念上都是“打印”在一张材料上的。在 Flutter 的 I/flutter (26182): 材料库中,该材料由材料小部件表示。例如,材质小部件 I/flutter (26182):渲染墨水飞溅。因此,许多材质库小部件需要 I/flutter (26182):它们上方的树中有一个材质小部件。I/flutter (26182):要引入 Material 小部件,您可以直接包含一个小部件,也可以使用包含 I/flutter (26182):材质本身的小部件,例如 Card、Dialog、Drawer 或 Scaffold。I/flutter (26182):找不到 Material 祖先的特定小部件是: I/flutter (26182):I/flutter (26182):要引入 Material 小部件,您可以直接包含一个小部件,也可以使用包含 I/flutter (26182):材质本身的小部件,例如 Card、Dialog、Drawer 或 Scaffold。I/flutter (26182):找不到 Material 祖先的特定小部件是: I/flutter (26182):I/flutter (26182):要引入 Material 小部件,您可以直接包含一个小部件,也可以使用包含 I/flutter (26182):材质本身的小部件,例如 Card、Dialog、Drawer 或 Scaffold。I/flutter (26182):找不到 Material 祖先的特定小部件是: I/flutter (26182):
TextField(controller: …