欢迎光临散文网 会员登陆 & 注册

Android QPython3 可视化-多个文本:MltiText.py

2020-10-30 00:54 作者:乘着船  | 我要投稿

#需要BaseWindow.py  https://www.bilibili.com/read/cv8680125


from BaseWindow import *

ET="""

 <EditText

  android:id="@+id/Title%s"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  android:textSize="8dp"

  android:text="%s"

  android:textColor="#ff0000"

  android:background="#afffaf"

  android:layout_weight="1"

  android:gravity="center"

 />

 <EditText

  android:id="@+id/Text%s"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  android:textSize="8dp"

  android:text="%s"

  android:textColor="#0000ff"

  android:layout_weight="1"

 />

"""

XML="""<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

 android:layout_width="fill_parent"

 android:layout_height="fill_parent"

 android:background="#ff0E4200"

 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"> 

 <EditText

  android:id="@+id/supTitle"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  android:textSize="8dp"

  android:text="%s"

  android:textColor="#007f00"

  android:layout_weight="1"

  android:gravity="center"

 />

""","""

 </LinearLayout>

 </ScrollView>

    </LinearLayout>

 <LinearLayout

  android:layout_width="fill_parent"

  android:layout_height="100dp"

  android:orientation="horizontal"

  android:layout_weight="8">

 <Button

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:text="%s"

  android:id="@+id/but_conf"

  android:textSize="8dp"

  android:background="#007f7f"

  android:textColor="#ffffffff"

  android:layout_weight="1"

  android:gravity="center"/>

 <Button

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:text="%s"

  android:id="@+id/but_copy"

  android:textSize="8dp"

  android:background="#7f7f00"

  android:textColor="#ffffffff"

  android:layout_weight="1"

  android:gravity="center"/>

 <Button

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:text="%s"

  android:id="@+id/but_canc"

  android:textSize="8dp"

  android:background="#7f007f"

  android:textColor="#ffffffff"

  android:layout_weight="1"

  android:gravity="center"/>

 </LinearLayout>

</LinearLayout>"""

def getText(self):

    t=self.text

    j=[]

    for i in range(self.Count):

        j.append(t[i].text)

    return j

class MainScreen(Layout):

    def on_show(self):

        v=self.views

        Text=[]

        for i in range(self.Count):

            Text.append(v.pop('Text%s'%i))

        self.text=Text

        v.but_conf.add_event(click_EventHandler(v.but_conf,self.conf))

        v.but_copy.add_event(click_EventHandler(v.but_copy,self.copy))

        v.but_canc.add_event(click_EventHandler(v.but_canc,self.canc))

    def on_close(self):

        pass

    def copy(self,view,dummy):

        droid.setClipboard(str(getText(self)))

        droid.makeToast("文本已复制")

    def conf(self,view,dummy):

        MainScreen.Text=getText(self)

        FullScreenWrapper2App.close_layout()

    def canc(self,view,dummy):

        MainScreen.Text=None

        FullScreenWrapper2App.close_layout()

def MltiText(supTitle='',Contents=(),button=CCC):#主函数

#多段文本(总标题,多段文本标题内容(标题1,(标题2,内容2),(标题3,内容3),标题4,……),(确认按钮文本,复制按钮文本,取消按钮文本))

#按“确认”返回:多段文本内容list[内容1,内容2,内容3,内容4,……]

#按“取消”返回:None

    m=[XML[0]%Str2Xml(supTitle)]

    Contents=list(Contents)

    j=len(Contents)

    if j<1:

        Contents.append('')

        j=1

    for i in range(j):

        j=Contents[i]

        if type(j)!=str:

            j=i,Str2Xml(j[0]),i,Str2Xml(j[1])

        else:

            j=i,Str2Xml(j),i,''

        m.append(ET%j)

    m.append(XML[1]%tuple(button))

    m=''.join(m)

    MainScreen.Count=i+1

    FullScreenWrapper2App.show_layout(MainScreen(m,'Mlti'))

    FullScreenWrapper2App.eventloop()

    m=MainScreen.Text

    del MainScreen.Text,MainScreen.Count

    return m

__all__=('MltiText','droid')


==========说明==========


MltiText('大标题',('小标题1',('小标题2','小内容2'),('小标题3','小内容3'),'小标题4'))

按“确认”返回:['', '小内容2', '小内容3', '']


作者:乘着船@Bilibili

更多文章+下载链接:https://www.bilibili.com/read/readlist/rl321663



Android QPython3 可视化-多个文本:MltiText.py的评论 (共 条)

分享到微博请遵守国家法律