我在使用 Tkinter 和 Python 的网格使所有内容正确排列时遇到一些麻烦。我希望菜单栏位于最顶部,然后有两个列表框(每一侧一个),在窗口中间它们之间有几个按钮。
目前,两个列表框都出现在窗口的右下角,按钮位于左上角,与菜单按钮重叠。
考虑到列表框的大小,如何处理列表框的网格布局。它们可以占据多个网格单元吗?例如,如果我将一个列表框放在 (row = 1,column = 1) 中,另一个放在行 (row = 1,column = 2) 中,Tkinter 会自动加宽单元格,使其成为列表框的宽度,还是会只是重叠列表框?
def __init__(self,root):
self.frame = Frame(root, width=500)
self.frame.pack()
self.BuildMainWindow(self.frame)
self.ListboxSet = 0
self.frame.grid()
return
#displays the menu bar and options
def BuildMainWindow(self, frame):
menubar = Frame(frame,relief=RAISED,borderwidth=1)
menubar.pack()
mb_file = Menubutton(menubar,text='file')
mb_file.menu = Menu(mb_file)
mb_file.menu.add_command(label='open', command = self.openfile)
mb_file.grid(row = 1, column = 1)
mb_edit = Menubutton(menubar,text='edit')
mb_edit.menu = Menu(mb_edit)
mb_edit.grid(row=1, column = 3)
mb_file['menu'] = mb_file.menu
mb_edit['menu'] = mb_edit.menu
#upon selecting …Run Code Online (Sandbox Code Playgroud) 我正在做一些 Android 练习,但我在小部件方面遇到了问题:
目标:当用户将新的小部件添加到主页时,应用程序运行一个配置,用户可以在其中选择一个字符串。在配置过程中,必须将该字符串设置为小部件布局内唯一按钮的“文本”,并且在该按钮上应用程序必须设置一个 onclick 侦听器,该侦听器将调用另一个将字符串作为参数传递的活动。因此,当用户单击按钮时,将调用提供按钮文本的活动。主要目标是,如果我有两个小部件,每个小部件都会设置 onclick 侦听器发送不同的字符串作为参数。
代码:
int mAppWidgetId = 0;
if (extras != null) {
mAppWidgetId = extras.getInt(
AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
}
String thestring = ... //this string is set dynamically by the configuration
RemoteViews views = new RemoteViews(this.getPackageName(), R.widget_profile);
views.setTextViewText(R.id.buttonWidget, thestring);
Intent clickIntent = new Intent(this, afterclickactivity.class);
clickIntent.putExtra("TheString", thestring);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, clickIntent, 0);
views.setOnClickPendingIntent(R.id.buttonWidget, pendingIntent);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
appWidgetManager.updateAppWidget(mAppWidgetId, views);
Run Code Online (Sandbox Code Playgroud)
问题:一切似乎都工作正常,小部件位于主屏幕中,按钮上的文本是用户选择的文本,如果我添加同一小部件的 2 个实例,它们根据用户选择具有不同的文本。但是,当用户按下第二个小部件上的按钮时,它会启动“afterclickactivity”,其参数与 widget1 相同,忽略第二个选择的字符串。
它像是:
小部件 1:文本:string1 onclick:callActivity(string1)
小部件 2:文本:string2 …
我正在使用 Durandal 构建一个向导小部件,我想像这样使用它:
<div data-bind="wizard: options">
<!-- Step 1 -->
<span data-part="step-header-1">
Step 1
</span>
<div data-part="step-content-1">
step content here
</div>
<!-- Step 2 -->
<span data-part="step-header-2">
Step 2
</span>
<div data-part="step-content-2">
step content here
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是实际的小部件(为简洁起见,进行了删减):
<div class="wizard-container">
<ul class="steps" data-bind="foreach: steps">
<li>
<span data-bind="html: heading"></span>
</li>
</ul>
<!-- ko foreach: steps -->
<div class="wizard-step" data-bind="css: { active: isActive }">
<div data-bind="html: content">
</div>
</div>
<!-- /ko -->
</div>
Run Code Online (Sandbox Code Playgroud)
我已经让它工作了,使用 jQuery 获取数据部分,将数据部分的内部 HTML 分配给我的步骤模型上的属性,然后使用 html 绑定将内容绑定到每个步骤。这适用于 DOM 方面,但这样做意味着我的步骤内容不会进行数据绑定。我很确定这是因为我使用了 …
我是 Qt 的新手,我想实现一个可以动态增长的可滚动小部件,例如,在按下另一个按钮时向其中添加按钮。我尝试使用以下布局和代码来实现它:

scrollArea = new QScrollArea(ui->outerWidget);
scrollArea->setWidget(ui->innerWidget);
layout = new QVBoxLayout(ui->outerWidget);
ui->innerWidget->setLayout(layout);
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
// code for PushButton to add buttons in innerWidget
void MainWindow::on_pushButton_clicked()
{
QPushButton *button = new QPushButton("button"+QString::number( nameCounter ));
nameCounter ++;
ui->innerWidget->layout()->addWidget(button);
}
Run Code Online (Sandbox Code Playgroud)
当我运行程序时,此实现有两个问题,首先,innerWidget 出现不合适(我在 Qt Creator 的设计模式中定义其位置),其次在布局中添加许多小部件后,滚动条不会增长,而是相反小部件变得更小以适应布局:

在另一个线程中,建议将 widgetResizable 设置为 true:
scrollArea->setWidgetResizable(true);
Run Code Online (Sandbox Code Playgroud)
滚动条现在似乎可以工作,但新的问题是innerWidget变得非常小,因此几乎不可见:

那么,如何实现一个符合设计大小和位置的可滚动小部件呢?
ListView如果给出触发器,我想更新 Android 应用程序小部件中的某些项目 a 的布局。所以我getView()在 中的方法中实现了下面的方法RemoteViewsService.RemoteViewsFactory。
public RemoteViews getViewAt(int position) {
...
int remoteViewId;
if (some condition) {
remoteViewId = R.layout.highlighted_item;
} else {
remoteViewId = R.layout.item;
}
RemoteViews rv = new RemoteViews(mContext.getPackageName(), remoteViewId);
Run Code Online (Sandbox Code Playgroud)
此代码在首次加载小部件时有效,但在使用notifyAppWidgetViewDataChanged布局进行更新时仍然存在并且不会更改。如何更新用于 ListView 项目的 xml 布局?
此问题与C#使用编写的 Android 小部件有关Xamarin。
text style我想为bold小部件布局的元素设置文本视图。更改文本本身效果很好,但我无法设置其他属性。
这是构建更新的方法的一部分
remoteViews.SetTextViewText(Resource.Id.widget_info, nextItemText[1]);
if (element.InProgress)
{
// this is my try to set textstyle to bold
remoteViews.SetString(Resource.Id.widget_info, "textStyle", "bold");
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能设置text style为bold?
提前致谢!
我正在尝试找到信号的 fft 峰值,以用于进一步分析信号。我正在使用数据的 SpanSelect 并进行 fft,表示为频谱。我真的想让绘图具有交互性,并且用户单击一个点进行进一步分析,但我没有找到一种方法可以做到这一点,所以想要一种找到局部频率峰值的方法。频谱可能如下所示:

因此,我想要一种方法来返回峰值为 38 Hz 的频率。有没有办法做到这一点?
我有最新的 ckeditor 版本 4.5.7,带有拖放 API,我有一个情况,我需要将一个小部件从一个编辑器拖放到另一个编辑器。正如这张票所说,建议的功能是静默失败并且不执行任何操作。
就我而言,如果将小部件拖动到不同的编辑器,则需要复制小部件;如果将小部件拖动到同一编辑器中,则需要移动小部件。第二种情况已经在工作
关于如何做到这一点有什么想法吗?
editor.on( 'contentDom', function() {
var dropTarget = CKEDITOR.plugins.clipboard.getDropTarget( editor );
editor.editable().attachListener( dropTarget, 'drop', function( evt ) {
// The target may be some element inside the draggable div (e.g. the image), so get the div.h-card.
var target = evt.data.getTarget().getAscendant( 'div', true );
// Initialization of CKEditor data transfer facade is a necessary step to extend and unify native
// browser capabilities. For instance, Internet Explorer does not support any other data …Run Code Online (Sandbox Code Playgroud) 我正在尝试使以下代码起作用:它的目的是删除名为 _textBox 的文本小部件的最后一个字符(就像键盘上的退格键通常会做的那样)...
def addChar(_textBox, char):
global charCount
if charCount <= 15:
if char == "backSpace":
_textBox.delete(charCount, END)
if charCount != 0:
charCount = charCount - 1
else:
_textBox.insert(END, char)
charCount = charCount + 1
print(charCount)
Run Code Online (Sandbox Code Playgroud)
看来唯一的问题是代码的“.delete()”部分......
有谁知道我如何正确使用它来仅删除文本小部件中的最后一个字符?
提前致谢 :)
在我的 Flutter 项目中,为了提高性能,我创建了许多const小部件,这些小部件在其父小部件重建时不会重建。
但是,在用户更改应用程序的语言后,我需要重建整个应用程序以应用文本更改。
有没有办法强制应用程序完全重建?谢谢,任何建议将不胜感激。
widget ×10
android ×3
python ×3
layout ×2
tkinter ×2
ckeditor ×1
constants ×1
durandal ×1
fft ×1
flutter ×1
javascript ×1
jquery ×1
knockout.js ×1
listview ×1
matplotlib ×1
python-3.6 ×1
python-3.x ×1
qt ×1
rebuild ×1
remoteview ×1
scroll ×1
textview ×1
xamarin ×1