initUI()修辞方法有哪些什么用?

1884人阅读
事件是每一个GUI应用程序的组成部分。所有的GUI应用程序是事件驱动的。应用程序反应,以产生不同的事件,在其生命周期类型。事件的产生主要是由应用程序的用户。但它们可以产生,以及通过其他手段。例如互联网连接,窗口管理器,定时器。所以,当我们调用mainloop()方法,等待我们的应用程序产生事件。 mainloop()方法结束时退出应用程序。
事件是一个从底层框架,通常的GUI工具包的应用程序级信息的一块。事件循环是一种编程构造和调度事件或程序中的消息等待。事件循环反复查找进程的事件。调度程序是一个过程,映射事件到事件处理程序。事件处理程序,对事件作出反应的方法。
事件对象是与事件相关联的对象。它通常是一个窗口。事件类型是一个已产生的独特的事件。事件绑定是一个对象,结合事件处理程序的事件类型。
一个简单的例子
这个例子里面讨论move事件。类型是wx.Movie的事件。此事件绑定是wx.EVT_MOTION。
Created on
@author: Administrator
class Example(wx.Frame):
def __init__(self,parent,title):
super(Example,self).__init__(parent,title=title,size=(500,300))
self.InitUI()
self.Centre()
self.Show()
def InitUI(self):
wx.StaticText(self,label='x:',pos=(10,10))
wx.StaticText(self,label='y:',pos=(10,30))
self.st1 = wx.StaticText(self,label='',pos=(30,10))
self.st2 = wx.StaticText(self,label='',pos=(30,30))
self.Bind(wx.EVT_MOVE, self.OnMove)
self.SetSize((250, 180))
self.SetTitle('Move event')
self.Centre()
self.Show(True)
def OnMove(self,e):
x,y = e.GetPosition()
self.st1.SetLabel(str(x))
self.st2.SetLabel(str(y))
if __name__ == '__main__':
app = wx.App()
Example(None,title=&gotoclass&)
app.MainLoop()
这个例子显示了当前位置的窗口,拖动窗口移动试试。
self.Bind(wx.EVT_MOVE, self.OnMove)
这里我们将wx.EVT_MOVE事件绑定到OnMove方法上。
def OnMove(self, e):
x, y = e.GetPosition()
self.st1.SetLabel(str(x))
self.st2.SetLabel(str(y))
在OnMove()方法的事件参数是一个对象,具体到一个特定的事件类型。在我们的例子,它是一个wx.MoveEvent类的实例。这个对象包含有关事件的信息。例如事件对象或窗口的位置。在我们的例子中,事件对象是wx.Frame的部件。我们用GetPosition()方法调用当前的位置。
在wxPython中,绑定是件很容易的事情,分三个步骤:
1.定义绑定的名字:wx.EVT_SIZE, wx.EVT_CLOSE等等。
2.创建事件处理,也就是方法。
3.绑定事件与方法。
Bind(event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY)
1.event就是一种EVT_ *对象
2.handler就是方法。
3.source是我们要从不同的小部件中区分相同的事件类型。
4.当我们有多个按钮、菜单项等id用于区分它们。
有时我们需要停止处理一个事件。要做到这一点,我们调用这个方法Veto()。
class Example(wx.Frame):
def __init__(self,parent,title):
super(Example,self).__init__(parent,title=title,size=(400,300))
self.InitUI()
self.Centre()
self.Show()
def InitUI(self):
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
def OnCloseWindow(self,e):
dial = wx.MessageDialog(None,&Are you Sure to Quit?&,&Question&,
wx.YES_NO|wx.NO_DEFAULT|wx.ICON_QUESTION)
ret = dial.ShowModal()
if ret == wx.ID_YES:
self.Destroy()
if __name__ == '__main__':
app = wx.App()
Example(None,title=&VetoMethod&)
app.MainLoop()
当我们处理关闭窗口时,需要给用户一个提示,是否真的退出程序。Veto()方法可以返回正在处理的事件。
有两种类型的事件:基本事件和命令事件。他们有着不同的传播方法。基本事件不传播。命令事件可能传播。例如wx.CloseEvent是一个基本的事件。它并不适合这个事件传播到父窗口小部件。
默认情况下,事件,是在一个事件处理程序可以停止传播。如果要继续传播,我们必须调用Skip()方法。
class MyPanel(wx.Panel):
def __init__(self,*args,**kw):
super(MyPanel,self).__init__(*args,**kw)
self.Bind(wx.EVT_BUTTON, self.OnButtonClicked)
def OnButtonClicked(self,e):
print &event reached panel class&
class MyButton(wx.Button):
def __init__(self,*args,**kw):
super(MyButton,self).__init__(*args,**kw)
self.Bind(wx.EVT_BUTTON, self.OnButtonClicked)
def OnButtonClicked(self,e):
print &event reached button class&
class Example(wx.Frame):
def __init__(self,*args,**kw):
super(Example,self).__init__(*args,**kw)
self.InitUI()
def InitUI(self):
mpnl = MyPanel(self)
MyButton(mpnl,label='Ok',pos=(15,15))
self.Bind(wx.EVT_BUTTON, self.OnButtonClicked)
self.SetTitle(&Propagation&)
self.Centre()
self.Show()
def OnButtonClicked(self,e):
print &event reached frame class&
def main():
ex = wx.App()
Example(None)
ex.MainLoop()
if __name__ == '__main__':
这个例子中,frame里装着一个panel,一个button,当点button时它会把事件传播给panel,再传播给frame.
event reached button class
event reached panel class
event reached frame class
如果你有兴趣,尝试省略一些Skip()方法,看看会发生什么。
识符是整数,惟一确定组件身份的事件系统。有三种方法可以创建的窗口id。
1.让系统自动创建。
2.使用标准ID
3.自己创建
wx.Button(parent, -1)
wx.Button(parent, wx.ID_ANY)
上面两个-1与wx.ID_ANY都是让系统自动创建ID。但我们推荐使用标准ID或者自己创建ID。
class Example(wx.Frame):
def __init__(self,*args,**kw):
super(Example,self).__init__(*args,**kw)
self.InitUI()
def InitUI(self):
panel = wx.Panel(self)
grid = wx.GridSizer(3,2)
grid.AddMany([(wx.Button(panel,wx.ID_CANCEL),0,wx.TOP|wx.LEFT,9),
(wx.Button(panel, wx.ID_DELETE), 0, wx.TOP, 9),
(wx.Button(panel, wx.ID_SAVE), 0, wx.LEFT, 9),
(wx.Button(panel, wx.ID_EXIT)),
(wx.Button(panel, wx.ID_STOP), 0, wx.LEFT, 9),
(wx.Button(panel, wx.ID_NEW))])
self.Bind(wx.EVT_BUTTON, self.OnQuitApp,id=wx.ID_EXIT)
panel.SetSizer(grid)
self.SetSize((220,180))
self.SetTitle(&window ID&)
self.Centre()
self.Show()
def OnQuitApp(self, event):
self.Close()
def main():
ex = wx.App()
Example(None)
ex.MainLoop()
if __name__ == '__main__':
这里我们使用的都是标准ID,如果在Liux,这些按钮都带图标。
self.Bind(wx.EVT_BUTTON, self.OnQuitApp, id=wx.ID_EXIT)指定ID后,像这个id=wx.ID_EXIT。就可以处理它的事件了。
创建自己的ID
让我们来看看自己如何创建ID:
Created on
@author: Administrator
ID_MENU_NEW = wx.NewId()
ID_MENU_OPEN = wx.NewId()
ID_MENU_SAVE = wx.NewId()
class Example(wx.Frame):
def __init__(self,*args,**kw):
super(Example,self).__init__(*args,**kw)
self.InitUI()
def InitUI(self):
self.CreateStatusBar()
self.CreateMenuBar()
self.SetSize((250, 180))
self.SetTitle('My Own ID')
self.Centre()
self.Show(True)
def CreateMenuBar(self):
mb = wx.MenuBar()
fMenu = wx.Menu()
fMenu.Append(ID_MENU_NEW,'New')
fMenu.Append(ID_MENU_OPEN, 'Open')
fMenu.Append(ID_MENU_SAVE, 'Save')
mb.Append(fMenu,'&File')
self.SetMenuBar(mb)
self.Bind(wx.EVT_MENU, self.DisplayMessage,id=ID_MENU_NEW)
self.Bind(wx.EVT_MENU, self.DisplayMessage,id=ID_MENU_OPEN)
self.Bind(wx.EVT_MENU, self.DisplayMessage,id=ID_MENU_SAVE)
def DisplayMessage(self,e):
sb = self.GetStatusBar()
eid = e.GetId()
if eid == ID_MENU_NEW:
msg = 'New Menu item selected'
elif eid==ID_MENU_OPEN:
msg = 'Open menu item selected'
elif eid == ID_MENU_SAVE:
msg = 'Save menu item selected'
sb.SetStatusText(msg)
def main():
ex = wx.App()
Example(None)
ex.MainLoop()
if __name__ == '__main__':
ID_MENU_NEW = wx.NewId()
ID_MENU_OPEN = wx.NewId()
ID_MENU_SAVE = wx.NewId()
wx.NewId()方法可以帮你创建一个唯一的id号供你使用。
我们窗口变大变小时或当我们最大化时,就会产生一个重绘事件。
class Example(wx.Frame):
def __init__(self, *args, **kw):
super(Example, self).__init__(*args, **kw)
self.InitUI()
def InitUI(self):
self.count = 0
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.SetSize((250, 180))
self.Centre()
self.Show(True)
def OnPaint(self,e):
self.count += 1
self.SetTitle(str(self.count))
def main():
ex = wx.App()
Example(None)
ex.MainLoop()
if __name__ == '__main__':
焦点事件:
Created on
@author: Administrator
class MyWindow(wx.Panel):
def __init__(self,parent):
super(MyWindow,self).__init__(parent)
self.color = '#b3b3b3'
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.Bind(wx.EVT_SIZE, self.OnSize)
self.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus)
self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus)
def OnPaint(self,e):
dc = wx.PaintDC(self)
dc.SetPen(wx.Pen(self.color))
x,y = self.GetSize()
dc.DrawRectangle(0,0,x,y)
def OnSize(self,e):
self.Refresh()
def OnSetFocus(self,e):
self.color = '#0099f7'
self.Refresh()
def OnKillFocus(self,e):
self.color = '#b3b3b3'
self.Refresh()
class Example(wx.Frame):
def __init__(self,*args,**kw):
super(Example,self).__init__(*args,**kw)
self.InitUI()
def InitUI(self):
grid = wx.GridSizer(2,2,10,10)
grid.AddMany([(MyWindow(self),0,wx.EXPAND|wx.TOP|wx.LEFT,9),
(MyWindow(self), 0, wx.EXPAND|wx.TOP|wx.RIGHT, 9),
(MyWindow(self), 0, wx.EXPAND|wx.BOTTOM|wx.LEFT, 9),
(MyWindow(self), 0, wx.EXPAND|wx.BOTTOM|wx.RIGHT, 9)])
self.SetSizer(grid)
self.SetSize((350, 250))
self.SetTitle('Focus event')
self.Centre()
self.Show(True)
def main():
ex = wx.App()
Example(None)
ex.MainLoop()
if __name__ == '__main__':
上面例子中,四个panel,最亮的那个panel就是焦点。
当你敲击键盘时,键盘事件就产生了。它针对的就是当前获得焦点的控件。有三种不同的处理方法:
wx.EVT_KEY_DOWN
wx.EVT_KEY_UP
wx.EVT_CHAR
我们来看一下这个例子,当你按下Esc键时,来关闭程序。
class Example(wx.Frame):
def __init__(self, *args, **kw):
super(Example, self).__init__(*args, **kw)
self.InitUI()
def InitUI(self):
pnl = wx.Panel(self)
pnl.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
pnl.SetFocus()
self.SetSize((250, 180))
self.SetTitle('Key event')
self.Centre()
self.Show(True)
def OnKeyDown(self,e):
key = e.GetKeyCode()
if key == wx.WXK_ESCAPE:
ret = wx.MessageBox(&Are you sure to quit?&,&Question&,
wx.YES_NO|wx.NO_DEFAULT,self)
if ret == wx.YES:
self.Close()
def main():
ex = wx.App()
Example(None)
ex.MainLoop()
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:132120次
积分:2803
积分:2803
排名:第5174名
译文:136篇
评论:115条尖锐湿疣用什么方法治疗好 对症施治、标本兼治
  彻底治愈不仅是患者个人的问题,也是一个世界性的难题,要问尖锐湿疣用什么方法治疗好,就必须对症施治,才能够标本兼治。国内权威性病诊疗机构北京解放军93462医院专家如实介绍到。  近年来尖锐湿疣不断高发,治疗尖锐湿疣却并无什么好的疗法能够将疾病彻底治愈,这是患者的痛苦之处,也是医学界比较着急的地方。性病权威专家邱斌指出:尖锐湿疣要想根治,必须把引起疾病的人类乳头瘤病毒(HPV)彻底清除,这样才能够标本兼治。  仔细分析一下常见的治疗尖锐湿疣的方法,药物、激光、手术、冷冻等等,这些疗法治疗尖锐湿疣只是清除外生疣体,这个过程可以消灭部分病毒(疣体是病毒最集中的部位),但不可避免的还有残存病毒,残留病毒一刻不除,尖锐湿疣就时时刻刻处在复发的危险中。  常规疗法治疗尖锐湿疣,就像药只能是对症治疗,鼻塞可以用缩血管药物收缩血管使鼻腔通畅,可以用退烧药来降低体温,咳嗽可以用镇咳药减轻咳嗽症状。但这些治疗感冒药的成份中没有一种成份能够杀灭处于变异中的病毒,全部都是起到缓解症状提高患者免疫力的作用,却达不到根治的目的。  尖锐湿疣用什么方法治疗好?采用对症疗法施治,既能治标,又能治本。由北京解放军93462医院研发成功的“基因诱导抗病毒免疫综合疗法”是专门针对尖锐湿疣治疗的新型疗法,该疗法能够通过提取患者自动脱落疣体携带病毒细胞,定型后进行人工基因工程处理,将其培养成具有特异性免疫功能的制剂,之后通过大型仪器回输到患者体内,进行靶向性杀灭病毒,并同时提高患者的免疫力,直到患者体内病毒彻底被清除,整个治疗过程只需3~5天时间,如遇病情严重患者,治疗时间也不会超过10天。  研发“基因诱导抗病毒免疫综合疗法”的北京解放军93462医院的专家团队首席专家邱斌说:治病就要对症,否则就无法达到标本兼治的效果。尖锐湿疣用什么方法治疗好,推荐大家采用“基因诱导抗病毒免疫综合疗法”,详情了解→http://www.bjnkw.org/ztbd/lfzt.html(复制黏贴网址到地址栏可打开)。  温馨提示:如果患者一味为了寻找“尖锐湿疣用什么方法治疗好”而耽误治疗最佳时间,将会造成病情恶化,心理负担加重,花费更多这些严重后果。所以,一旦发现感染尖锐湿疣,就需要选择心仪的医院(正规医院)进行咨询或接受治疗,如您有就医需求,可进入医院官网[www.bjnkw.org]进行了解,或直接拨打专家电话010-。责任编辑:(深度鸿富)
(免责声明:深度鸿富登载此文出于传递更多信息之目的。文章所述内容仅代表文章原作者的个人观点。所写文章的原创性以及文中陈述信息未经证实,对该本文所写全部或者部分内容、文字的真实性、有效性不作任何保证或承诺,请读者仅作参考,并请自行仔细核实相关内容。深度热点专栏文章投诉电话:0)
常见症状: 并发症状: 相关检查: 推荐用药:
本品用于治疗尖锐湿疣,尤其适用...[]
推荐医院:推荐医生:
分享到微信朋友圈
“扫一扫”分享
绿叶菜农残最多洗澡勿戴隐形眼镜医生的手可能很脏简称去“友好”韶关市区首个“羊宝宝”出生
全省医保联网结算用社保卡办理患者是孕妇新显微外科手术可以帮忙十大畅销药横扫世界
[] [] [] [] [] [] [] []
杜甫死因或是糖尿病并发的酮症酸中毒或心、脑血管病…… []研究表明,长期坐姿不良会导致腰肌劳损发病率增加…… []
均衡饮食是健康的必要条件。我们日常的饮食含有五大…… []一句话就是保持干爽,不单单是宝宝自身的干爽,生活…… []
保护肝脏健康,远离脂肪肝…… []皮肤传染病不要自行用药,脓包疮莫当成“痱子”…… []
宝宝感冒吃什么药?宝宝感冒发烧不适宜频繁更换药物,专家指出宝宝发烧用药专一最好,多种药物重复服用会加强毒副作用。温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
GridBagLayout可以说是布局管理器Layout中最复杂的一个,其中涉及到的参数也比较得多,比如说:GridBagConstraints gridBagConstraints=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,fill,insets,ipadx,ipady);具体的参数含义如下:gridx,gridy:用来设置组件的相对位置。gridwidth,gridheight:用来设置组件所占的单位长度与高度,默认值皆为1。weightx,weighty:用来设置窗口变大时各组件跟随变大的比例,当数字越大其表示的含义是组件能够得到更大的空间,默认值皆为0。anchor:当组件空间大于组件本身时,要将组建置于何处。insets:设置组件之间彼此的间距,它有四个参数,分别是上、左、下、右,默认值皆为0.ipadx,ipady:设置组件间距,默认值皆为0。本文以在JPanel面板中添加三个JButton按钮为例来进行进一步的说明。源代码:package TestTimport java.awt.*;import javax.swing.*;public class GridBagLayoutTest extends JFrame{ public GridBagLayoutTest(String title){
super(title);
initUI(); } private void initUI(){
this.setBounds(100,100,350,200);
this.setVisible(true);
this.getContentPane().add(getPanelThree());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private JPanel getPanelOne(){
JPanel jpl1=new JPanel();
jpl1.setLayout(new GridBagLayout());
GridBagConstraints gb1=new GridBagConstraints();
JButton jb1=new JButton("按钮1");
gb1.insets=new Insets(15,15,15,15);
JButton jb2=new JButton("按钮2");
gb1.gridx=0;
gb1.gridy=0;
gb1.gridwidth=2;
gb1.gridheight=1;
gb1.fill=GridBagConstraints.BOTH;
jpl1.add(jb1,gb1);
gb1.gridx=0;
gb1.gridy=1;
jpl1.add(jb2,gb1);
jpl1.setBackground(Color.WHITE);
return jpl1; } private JPanel getPanelTwo(){
JPanel jpl2=new JPanel();
jpl2.setLayout(new GridBagLayout());
GridBagConstraints gb2=new GridBagConstraints();
JButton jb3=new JButton("按钮3");
gb2.gridx=0;
gb2.gridy=0;
gb2.gridwidth=2;
gb2.gridheight=2;
gb2.fill=GridBagConstraints.BOTH;
jpl2.add(jb3,gb2);
jpl2.setBackground(Color.WHITE);
return jpl2; } private JPanel getPanelThree(){
JPanel jpl3=new JPanel();
jpl3.setLayout(new GridBagLayout());
GridBagConstraints gb3=new GridBagConstraints();
gb3.gridx=0;
gb3.gridy=0;
gb3.weightx=2.0;
gb3.weighty=1.0;
gb3.fill=GridBagConstraints.BOTH;
jpl3.add(getPanelOne(),gb3);
gb3.gridx=1;
gb3.gridy=0;
gb3.weightx=3.0;
jpl3.add(getPanelTwo(),gb3);
return jpl3; } /**
* @param args
*/ public static void main(String[] args) {
// TODO Auto-generated method stub
new GridBagLayoutTest("网格包布局管理器");& }}运行的结果:&方法二:package TestTimport java.awt.*;import javax.swing.*;public class GridBagLayoutTestTwo extends JFrame{ private JButton jb1,jb2,jb3; public GridBagLayoutTestTwo(String title){
super(title);
initUI(); } private void initUI(){
this.setBounds(100,100,350,200);
this.setVisible(true);
this.getContentPane().add(getPanelThree());
this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); } private JPanel getPanelThree(){
JPanel jpl3=new JPanel();
jpl3.setLayout(new GridBagLayout());
GridBagConstraints gb3=new GridBagConstraints();
gb3.gridx=0;
gb3.gridy=0;
gb3.weightx=2.0;
gb3.weighty=1.0;
gb3.fill=GridBagConstraints.BOTH;
jpl3.add(getPanelOne(),gb3);
gb3.gridx=1;
gb3.gridy=0;
gb3.weightx=3.0;
jpl3.add(getPanelTwo(),gb3);
return jpl3; } private JPanel getPanelOne(){
JPanel jpl1=new JPanel();
GridBagLayout gridBagLayout=new GridBagLayout();
jpl1.setLayout(gridBagLayout);
gridBagLayout.setConstraints(getJButtonOne(),new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.SOUTH,GridBagConstraints.BOTH,new Insets(35,35,15,65),0,0));
jpl1.add(getJButtonOne());
gridBagLayout.setConstraints(getJButtonTwo(),new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.SOUTH,GridBagConstraints.BOTH,new Insets(15,35,35,65),0,0));
jpl1.add(getJButtonTwo());
jpl1.setBackground(Color.WHITE);
return jpl1; } private JButton getJButtonOne(){
if(jb1==null){
jb1=new JButton("按钮1");
return jb1; } private JButton getJButtonTwo(){
if(jb2==null){
jb2=new JButton("按钮2");
return jb2; } private JPanel getPanelTwo(){
JPanel jpl2=new JPanel();
GridBagLayout gridBagLayout=new GridBagLayout();
jpl2.setLayout(gridBagLayout);
gridBagLayout.setConstraints(getJButtonThree(),new GridBagConstraints(0,0,2,2,0,0,GridBagConstraints.SOUTH,GridBagConstraints.BOTH,new Insets(15,15,15,35),0,0));
jpl2.add(getJButtonThree());
jpl2.setBackground(Color.WHITE);
return jpl2; } private JButton getJButtonThree(){
if(jb3==null){
jb3=new JButton("按钮3");
return jb3; } /**
* @param args
*/ public static void main(String[] args) {
// TODO Auto-generated method stub
new GridBagLayoutTestTwo("网格包布局管理器二"); }}运行的结果:&
张侦毅推荐阅读:
阅读(3004)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'GridBagLayout()的使用方法',
blogAbstract:'GridBagLayout:网格包布局管理器GridBagLayout可以说是布局管理器Layout中最复杂的一个,其中涉及到的参数也比较得多,比如说:GridBagConstraints gridBagConstraints=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,fill,insets,ipadx,ipady);具体的参数含义如下:gridx,gridy:用来设置组件的相对位置。gridwidth,gridheight:',
blogTag:'gridbaglayout,gridbagconstraints,添加方法',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:6,
publishTime:8,
permalink:'blog/static/',
commentCount:3,
mainCommentCount:3,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 修辞方法有哪些 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信