我正在为 Orchard 开发一个自定义模块。我想在我的自定义模块中的一个页面上使用一个小部件。
如何将小部件添加到页面(将其显示为局部视图?如何引用它?)?
目标是将主页创建为模块,当您激活它时,它将具有 Item Slider Widget 的所有功能 - http://gallery.orchardproject.net/List/Modules/Orchard.Module.FeaturedItemSlider。所以小部件将位于页面的内容部分。
谢谢
我正在尝试在小部件中显示二进制信息(即文本、条目、标签)。单个字符,在这种情况下,只有“0”或“1”应该是可点击的,以便它们在 0 和 1 之间切换。
我不太确定要使用哪个小部件以及如何将鼠标事件绑定到单个字符。
我希望有人能指出我正确的方向,因为我对 TK 方面还很陌生。
我创建了一个 LabelFrame 小部件。一开始它有一个不错的尺寸:
import Tkinter
form = Tkinter.Tk()
errorArea = Tkinter.LabelFrame(form, text=" Errors ", width=250, height=80)
errorArea.grid(row=2, column=0, columnspan=2, sticky="E", \
padx=5, pady=0, ipadx=0, ipady=0)
Run Code Online (Sandbox Code Playgroud)

但是当我在其中插入一个空字符串时,errorArea小部件的大小会根据插入的字符串进行调整:
errorMessage = Tkinter.Label(errorArea, text="")
errorMessage.grid(row=0, column=0, padx=5, pady=2, sticky='W')
Run Code Online (Sandbox Code Playgroud)

我如何给errorArea小部件一个固定的大小,以便它的大小不会根据插入的标签而改变?
我有一个按照下面的 XML 的开关小部件,并且有 onToggleClicked 函数,当你点击开关时它工作正常。但是我注意到的是,您实际上可以将开关从一个位置滑动到另一个位置,并且在他的情况下不会触发 onClick 事件。如何禁用开关的滑动或如何监控开关的状态变化??多谢。
我一直在慢慢学习 Tkinter 和面向对象编程,但我已经把自己编程到了这个角落。请原谅我对这个问题缺乏批判性思维,但我已经问过我认识的每个比我更了解 Python 的人,我们无法在这里找到可行的解决方案。
我有一个正在开发的 gui 应用程序,旨在允许用户输入股票代码,为每个代码创建新标签,然后定期更新每个标签。(有点像一个非常基本的 etrade 应用程序或其他东西)。我发现在没有 gui 的情况下很容易做到这一点,因为我可以说:
while True:
sPrice = get_stock_price(s)
print sPrice
Run Code Online (Sandbox Code Playgroud)
但我已将我的 get_stock_price(s) 函数绑定到一个按钮,该按钮会生成一个子框架和一个包含在其中的标签。我遇到的问题是标签不会更新。一个朋友建议添加另一种方法来更新标签,但是我知道如何持续更新它的唯一方法是做一个
while True:
# get new price
# update the label
# time.sleep(~1 minute?)
Run Code Online (Sandbox Code Playgroud)
这会导致我的 gui 窗口永远冻结和旋转。我一直在阅读与此特定情况相关的所有其他线程,并且看到了许多不同的建议;不要在主线程中调用 sleep,不要使用 root.update,使用事件,调用 root.something.after(500, function) 并且我已经尝试实现。我留下的是一个科学怪人的代码,它仍然会检索我的股票价值,但不会更新它们,以及一些我不知道如何更新或在我的代码中调用的方法。
我希望的是(可能很长,我知道。对不起!)对我做错了什么的解释,以及如何解决它的建议。我真的很想自己理解和解决这个问题,但是只要解释了代码解决方案就会很棒。
非常感谢提前!!!
PS:这是我到目前为止的代码:
from Tkinter import *
import urllib
import re
import time
class MyApp(object):
def __init__(self, parent):
self.myParent = parent
self.myContainer1 = Frame(parent)
self.myContainer1.pack()
self.createWidgets()
button1 = Button(self.myContainer1, command = self.addStockToTrack)
self.myContainer1.bind("<Return>", self.addStockToTrack)
button1.configure(text = "Add …Run Code Online (Sandbox Code Playgroud) 默认情况下,使用 Qt Creator 创建新的 Qt Widget 项目时。有一个菜单栏,即使没有任何菜单、子菜单或操作,它也始终显示。我不想在设计器视图中删除这个菜单栏,只想隐藏它。有什么解决办法吗?
我们的应用程序支持多种地区和语言。当我开发今天的扩展小部件并阅读App Extension Programming Guide 时,我仍然找不到本地化解决方案。即使我像普通的 Xcode 项目一样创建 Localize.strings 文件,也可以像这样定义 Localize.strings 文件:
"scene_people_liked"="%d people like";
Run Code Online (Sandbox Code Playgroud)
用 :
#define NSLocalizedString(key, comment) \
[[NSBundle bundleWithPath:moLocalizedPath] localizedStringForKey:(key) value:@"" table:@"Localizable"]
Run Code Online (Sandbox Code Playgroud)
并调用它:
NSLocalizedString(@"scene_people_liked", nil)
Run Code Online (Sandbox Code Playgroud)
,还是不行。有人对这个问题有想法吗?
我尝试创建一个应该占据整个屏幕宽度的小部件。但它最初总是对应于android:minWidth。
当然,我可以将 android:minWidth 设置为 250 dp,但我想保持小部件可调整大小。
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="170dp"
android:minHeight="40dp"
android:updatePeriodMillis="86400000"
android:previewImage="@drawable/widget_preview"
android:initialLayout="@layout/widget_4"
android:configure="test.WidgetConfigureActivity"
android:resizeMode="horizontal"
android:widgetCategory="home_screen"
android:initialKeyguardLayout="@layout/widget_4">
</appwidget-provider>
Run Code Online (Sandbox Code Playgroud)
布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/widget_padding"
android:clickable="true"
android:focusable="true"
android:background="@color/translucent_black">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:baselineAligned="false">
<RelativeLayout
android:orientation="horizontal"
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/imageCircleButton"
android:layout_gravity="center_vertical"
android:layout_width="52dp"
android:layout_height="52dp"
android:scaleType="fitXY"
android:src="@drawable/widget_circle_w"
android:background="@android:color/transparent"
android:layout_centerVertical="true"
android:contentDescription="@string/strLevelIndicator"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/appwidget_text_level"
android:textStyle="bold"
android:textSize="30sp"
android:layout_gravity="center_vertical"
android:textColor="#ffffff"
android:text="@string/strWidgetDefLevel"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="clip_vertical"
android:layout_weight="0.8"
android:layout_gravity="left|center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/appwidget_text_map" …Run Code Online (Sandbox Code Playgroud) android widget android-widget android-layout android-appwidget
最近,我正在使用名为 switch 的小部件。开关是 Android Studio 的默认小部件。问题是当我用开关添加新项目时,它的动画会运行,但我不想看到它。我在我的项目中使用了 ListView 和 Cursor Adapter。而 switch 是作为 ListView 元素的一个项目。你知道如何解决吗?
我的 android 小部件中有一个文本视图,我只需要删除某些文本行。我在另一个 SO 问题中发现了这一点,以删除小部件中的文本:
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
// strike through text, this strikes through all text
views.setInt(R.id.appwidget_text, "setPaintFlags", Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
Run Code Online (Sandbox Code Playgroud)
问题是这会贯穿文本视图中的所有文本。如何仅删除文本视图文本的一部分?