我创建了一个自定义小部件,它必须在单击 ToolButton 时显示为弹出菜单。我怎么能做到这一点Qt 5.1.1?
我正在尝试获取小部件的父级,然后获取该小部件的父级。但是每次我尝试时都会出错。
错误:
AttributeError: 'str' object has no attribute '_nametowidget'
Run Code Online (Sandbox Code Playgroud)
为什么它给我那个错误。有人可以向我解释为什么我会收到此错误并帮助我修复它吗?
代码:
parent = event.widget.winfo_parent()
parentName = event.widget._nametowidget(parent)
frameParent = parentName.winfo_parent()
frameParentName = frameParent._nametowidget(frameParent)
Run Code Online (Sandbox Code Playgroud) 在 IPython Notebook 中使用 Interactive Widgets 时,特别是 FloatSliderWidget,有没有办法延迟最终结果的渲染?
我正在使用小部件和底图来显示地图数据,并且在每一步(滑动滑块时 - 控制图像叠加 alpha)的渲染尝试非常慢。
我可以设置一些延迟最终渲染的标志等吗?或者在我设置完所有滑块后添加一个按钮来显示图像?
非常感谢您的帮助。
干杯,J。
我有一个处于“禁用”状态的 ttk 条目。禁用时输入字段的背景颜色是浅蓝色阴影。如何将其更改为默认的灰色?从这篇文章中,我了解了如何更改前景色。 tkinter ttk 入口小部件 -disabledforeground
我尝试了相同的背景颜色方法,但没有奏效。我在 Windows 7 中使用 python 2.7。
这是我按照上述帖子尝试的代码:
from Tkinter import *
from ttk import *
root=Tk()
style=Style()
style.map("TEntry",background=[("active", "black"), ("disabled", "red")])
entry_var=StringVar()
entry=Entry(root,textvariable=entry_var,state='disabled')
entry.pack()
entry_var.set('test')
root.mainloop()
Run Code Online (Sandbox Code Playgroud) 是否可以使用“亲爱的 imgui”让两个按钮具有相同的按钮文本?
因为生成两个或多个 ImGui::Button("PRESS") 会导致只有第一个对选择做出反应(在 GCC / Win64 / MinGW 上测试)
我确定我错过了一个基本问题,但我目前无法找到解决这个问题的方法。
有没有办法从代码中在 html 网页中保存一个简单的(不是闪亮的)Timevis 时间线?我已成功尝试使用 RStudio 导出按钮,但我想在代码中包含该功能。
htmlwidgets::saveWidget()即使使用最少的代码,也无法正常工作,因为网页不完整,例如缺少缩放按钮(请参阅不完整的网页打印屏幕):
myTimeline<-timevis(
data.frame(id = 1:2,
content = c("one", "two"),
start = c("2016-01-10", "2016-01-12"))
)
htmlwidgets::saveWidget(myTimeLine,"myTimeLine.html")
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的任何帮助和建议!
我想创建一个交互式 Jupyter 笔记本。我想要一个 Textarea,如果我输入一些文本,就会在我输入的文本上运行一个函数。我想:
text = widgets.Textarea(
value='last',
placeholder='Paste ticket description here!',
description='String:',
disabled=False
)
display(text)
text.on_displayed(show_matches(text.value))
Run Code Online (Sandbox Code Playgroud)
然后我想执行一些魔术show_matches并显示一个 Pandas 数据框 ( diplay(df))。但是,这仅在我显式运行单元格时运行,然后再次仅使用预定义的last字符串运行。我希望它在我写完文本区域时运行,并带有我写的文本。我怎样才能做到这一点(例如:我怎样才能绑定value的Textarea一个Python变量和运行功能,每当价值的变化)?
我是 Python 新手,我想从 ipywidget 创建一个交互式下拉列表。主要目的是根据其他两个小部件更新下拉列表。在下面的代码中,小部件plotType将根据小部件headers_x和headers_y的输入进行更新(两者均指为绘图选择的数据框列)。如果headers_x和headers_y都有Select选项,则plotType需要显示“ Make selection ”。但是,如果headers_x和headers_y选择了其他选项(数据框中的列),则plotType需要相应地改变。如果headers_x和headers_y都是数字,那么plotType需要显示:numericVsNumeric,但如果headers_x是分类的并且headers_y是数字,那么plotType需要显示' catgoricalVsNumeric ' 我已经尝试了我的解决方案如下,但 plotType 中的选项小部件不更新。任何帮助深表感谢。谢谢你。
from ipywidgets import *
import seaborn.apionly as sns
df = sns.load_dataset('iris')
#identifies the columns in the dataframe
df_cols = list(df.columns.values)
df_cols.insert(0, 'Select')
str_cols = list(df.select_dtypes(include=['object']).columns.values)
str_cols.insert(0, 'Select')
#plot function
def set_plot(headers_x, …Run Code Online (Sandbox Code Playgroud) 我有以下小部件:
class OutsiderButton extends StatelessWidget {
final Function onPressed;
final Icon icon;
final OutsiderButtonPosition position;
OutsiderButton({this.onPressed, @required this.icon, this.position});
@override
Widget build(BuildContext context) {
return new Stack(fit: StackFit.loose, alignment: Alignment.center, children: [
new CustomPaint(
painter: new _OutsiderShape(position: position),
size: Size(60.0, 60.0),
isComplex: false,
),
OutlineButton(
borderSide: BorderSide(width: 1.0, color: Colors.white),
color: AppThemeColors.accentColor,
shape: new CircleBorder(),
child: new Padding(
padding: const EdgeInsets.all(6.0),
child: icon,
),
onPressed: onPressed,
)
]);
}
}
Run Code Online (Sandbox Code Playgroud)
它用于CustomPainter绘制背景。我需要它CustomPainter来绘制阴影,但是每次单击小部件时,阴影都会重新绘制并变得越来越强。这是CustomPainter:
class _OutsiderShape extends …Run Code Online (Sandbox Code Playgroud) 我有一个带有文本属性节点的自定义架构元素,该元素呈现为以下组件的小部件editingDowncast:
conversion.for( 'editingDowncast' )
.add( downcastElementToElement({
model: 'myModelElement',
view: (modelElement, viewWriter) => {
return createMyModelWidget( modelElement, viewWriter, 'Label' );
}
} )
);
function createMyModelWidget( modelElement, writer, label ) {
const content = modelElement.getAttribute('content')
const placeholder = writer.createText( content );
const container = writer.createContainerElement( 'div', { class: 'my-model-element--widget' } );
writer.insert( ViewPosition.createAt( container ), placeholder );
return toWidget( container, writer, label );
}
Run Code Online (Sandbox Code Playgroud)
通过一些外部事件(例如,来自配置小部件的外部模式的结果),使用 更新属性model.change。
model.change(writer => {
writer.setAttribute( 'attribute', 'whatever', widget );
writer.setAttribute( 'content', 'new …Run Code Online (Sandbox Code Playgroud)