Android QPython3 可视化-命令菜单:RadioCmd.py
#需要BaseWindow.py https://www.bilibili.com/read/cv8680125
from BaseWindow import *
RB="""
<RadioButton
android:id="@+id/Radio%s"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="8dp"
android:text="%s"
android:background="#%s"
/>
"""
XML="""<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#3f7faf"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="20">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="20">
<TextView
android:id="@+id/Title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="9dp"
android:text="%s"
android:textColor="#ffffff"
android:textStyle="bold"
android:layout_weight="1"
android:gravity="center"
/>
<RadioGroup
android:id="@+id/RadioGroup"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
""","""
</RadioGroup>
</LinearLayout>
</ScrollView>
</LinearLayout>
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:text="%s"
android:id="@+id/but_canc"
android:textSize="8dp"
android:background="#007f00"
android:textColor="#ffffff"
android:layout_weight="1"
android:gravity="center"/>
</LinearLayout>"""
class MainScreen(Layout):
def on_show(self):
v=self.views
for i in range(self.Count):
c=v['Radio%s'%i]
c.add_event(click_EventHandler(c,self.conf))
i=v.but_canc
c=i.add_event
c(click_EventHandler(i,self.canc))
c(key_EventHandler('4',i,self.canc))
def on_close(self):
pass
def conf(self,view,dummy):
MainScreen.Text=int(dummy['data']['id'][5:])
FullScreenWrapper2App.close_layout()
def canc(self,view,dummy):
MainScreen.Text=None
FullScreenWrapper2App.close_layout()
cmColor=('3f3f7f','7f007f')
def RadioCmd(Title='',Radio=(),Cancel='取消'):#主函数
#命令按钮组(标题,命令按钮文本组(命令按钮0,命令按钮1,……),取消按钮文本)
#点击“命令按钮n”返回整数n,点击“取消”返回None
r=[XML[0]%Str2Xml(Title)];i=-1
for i in range(len(Radio)):
r.append(RB%(i,Str2Xml(Radio[i]),cmColor[i%2]))
MainScreen.Count=i+1
r.append(XML[1]%Cancel)
r=''.join(r)
FullScreenWrapper2App.show_layout(MainScreen(r,'Cmd'))
FullScreenWrapper2App.eventloop()
r=MainScreen.Text
del MainScreen.Text
return r
__all__=('RadioCmd','droid')
==========说明===========

点击“项目n”返回整数n,点击“取消”返回None
作者:乘着船@Bilibili
更多文章+下载链接:https://www.bilibili.com/read/readlist/rl321663