我最近开始学习Kivy并使用它.今天我遇到了一个问题,我不确定这是Kivy中的错误还是我的误解.这是一个简化版本.
我正在开发一个GUI,上面有一个文本输入用于搜索.我的Kv文件如下所示:
#:kivy 1.0
#:import kivy kivy
<SearchPanel>:
searchquery: searchquery
AnchorLayout:
orientation: 'vertical'
anchor_x: 'center'
anchor_y: 'top'
padding: 10
TextInput:
id: searchquery
text: 'What to search for'
size_hint_x: 0.98
size_hint_y: None
height: 30
on_enter: root.search()
Run Code Online (Sandbox Code Playgroud)
应用程序代码如下所示:
# -*- coding: utf-8 -*-
import kivy
kivy.require('1.4.1')
from kivy.app import App
from kivy.uix.anchorlayout import AnchorLayout
class SearchPanel(AnchorLayout):
def search(self):
pass
class ExampleApp(App):
def build(self):
return SearchPanel()
if __name__ == '__main__':
ExampleApp().run()
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行应用程序时,我得到了这个回溯:
Traceback (most recent call last):
File "example.py", line 24, in <module> …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在一个活动中渲染一个加载圈,其数据由异步任务填充.我没有使用默认进度条,因为旧版Android中的图标如下所示:
我知道如何使用带有自定义图像和旋转动画的ImageView或ProgressBar,但我无法在任何地方找到新的官方Android外观图标.看起来像这样的那个:
或许还有另一种方法可以在Android 2.2中生成这种旋转轮动画.
我有这样的推文文字:
"@user1 @user2 blablabla @user3"
Run Code Online (Sandbox Code Playgroud)
我想使用正则表达式在推文开头过滤用户.这意味着@ user1和@ user2.并不总是有相同数量的用户,可能有一个,两个,三个......
我正在尝试使用re.IGNORECASE:
re.compile(ur'^(@[a-z0-9_]*\s)*')
Run Code Online (Sandbox Code Playgroud)
但是不符合我想要的,我已经尝试了我想出的所有东西,但都失败了.我对Python正则表达式不是很熟悉,但我会用egrep来做这件事:
echo "@user1 @user2 blablabla @user3" | egrep '^(@[[:alnum:]_]*[ ]*)*'
Run Code Online (Sandbox Code Playgroud)
谢谢
编辑
正则表达式是正确的,我只是以错误的方式检查解决方案.
tweet = "@user1 @user2 blablabla @user3"
re.compile(ur'^(@[a-z0-9_]*\s)*').match(tweet).groups()
Run Code Online (Sandbox Code Playgroud)
代替:
re.compile(ur'^(@[a-z0-9_]*\s)*').match(tweet).group(0)
Run Code Online (Sandbox Code Playgroud)
更正式的正则表达式:
re.compile(ur'^(@\w+\s)+').match(tweet).group(0)
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种反应导航的方式来调度导航动作,并等待其完全完成后再触发下一步。
就像是:
await dispatch({
type: 'Navigation/goBackTo',
routeName: 'Main',
})
dispatch(anotherAction())
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用setTimeout解决方法。