wxpython,有两个文本框,三个按钮控件,按下按钮便可以将文本框一中的内容复制到文本二中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wxpython,有两个文本框,三个按钮控件,按下按钮便可以将文本框一中的内容复制到文本二中相关的知识,希望对你有一定的参考价值。
这三个按钮的功能都是一样的,函数的写法可以相同,函数名不同便可。最好是将文本框一中的内容取出保存在放到文本二中。(给出完整代码,不要问为什么三个按钮,分数好商量)
参考技术A #coding=utf-8import wx
import wx.richtext as rt
class CopyPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
#用于点击按钮时保存
self.msg = ""
self.initGUI()
def initGUI(self):
self.__create_componts()
self.__set_properties()
self.__do_layout()
def __create_componts(self):
self.leftTxt = rt.RichTextCtrl(self, style=wx.TE_MULTILINE)
self.rightTxt = rt.RichTextCtrl(self, style=wx.TE_MULTILINE)
self.funcBtn1 = wx.Button(self, label="Function1")
self.funcBtn2 = wx.Button(self, label="Function2")
self.funcBtn3 = wx.Button(self, label="Function3")
self.Bind(wx.EVT_BUTTON, self.onFunction1Click, self.funcBtn1)
self.Bind(wx.EVT_BUTTON, self.onFunction2Click, self.funcBtn2)
self.Bind(wx.EVT_BUTTON, self.onFunction3Click, self.funcBtn3)
def onFunction1Click(self, evt):
self.left2right()
def onFunction2Click(self, evt):
self.left2right()
def onFunction3Click(self, evt):
self.left2right()
def left2right(self):
msg = self.leftTxt.GetValue()
self.msg = msg
self.rightTxt.SetValue(msg)
def __set_properties(self):
pass
def __do_layout(self):
mainSizer = wx.BoxSizer(wx.HORIZONTAL)
self.SetSizer(mainSizer)
leftSizer = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, u"Left Txt"), wx.VERTICAL)
buttonSizer = wx.BoxSizer(wx.VERTICAL)
rightSizer = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, u"Right Txt"), wx.VERTICAL)
mainSizer.Add(leftSizer, 2, wx.EXPAND | wx.ALL, 10)
mainSizer.Add(buttonSizer, 1, wx.EXPAND | wx.ALL, 10)
mainSizer.Add(rightSizer, 2, wx.EXPAND | wx.ALL, 10)
#左侧文本框
leftSizer.Add(self.leftTxt, 1, wx.EXPAND | wx.ALL, 10)
#中间按钮
buttonSizer.Add(self.funcBtn1, 0, wx.ALL, 10)
buttonSizer.Add(self.funcBtn2, 0, wx.ALL, 10)
buttonSizer.Add(self.funcBtn3, 0, wx.ALL, 10)
#右侧文本框
rightSizer.Add(self.rightTxt, 1, wx.EXPAND | wx.ALL, 10)
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, size=(600, 400))
self.Center()
CopyPanel(self)
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = TestFrame()
frame.Show()
app.MainLoop()
就这样咯,靠,审批耽误哥时间。。
参考技术B #python33from tkinter import *
# 按钮囘调函数
def callbtn1():
txt2.delete(0.0, END)
txt2.insert(END,str(txt1.get(0.0, END)))
def callbtn2():
txt2.delete(0.0, END)
txt2.insert(END,str(txt1.get(0.0, END)))
def callbtn3():
txt2.delete(0.0, END)
txt2.insert(END,str(txt1.get(0.0, END)))
root = Tk()
# 创建三个button
btn1 = Button(root, width=20, height=2, text='1', command=callbtn1)
btn2 = Button(root, width=20, height=2, text='2', command=callbtn2)
btn3 = Button(root, width=20, height=2, text='3', command=callbtn3)
# 创建2个文本框
txt1 = Text(root)
txt2 = Text(root)
# 布局
btn1.grid(row = 0, column = 0, sticky=N)
btn2.grid(row = 1, column = 0, sticky=N)
btn3.grid(row = 2, column = 0, sticky=N)
txt1.grid(row = 0, column = 1)
txt2.grid(row = 1, column = 1)
root.mainloop()
新手菜只会用tk~~
本回答被提问者采纳静态文本和按钮
静态文本和按钮:
wxPython 中静态文本是wx.StaticText,可显示文本。wxPython中的按钮主要有三个:wx.Button、wx.BitmapButton和wx.ToggleButton.wx.Button是普通按钮,wx.BitmapButton是带有图标按钮,wx.ToggleButton能进行两种状态切换的按钮。
效果图如下:
文本输入控件
文本输入控件类是wx.TextCtrl,默认情况下只能文本输入控件中只能输入单行数据,如果想输入多行可以设置style=wx.TE_MULTILINE.如果想把文本输入控件作为密码框使用,可以设置style = wx.TE_PASSWORD。
复选框(wx.CheckBox)
单选按钮(wx.RadioButton)
以上是关于wxpython,有两个文本框,三个按钮控件,按下按钮便可以将文本框一中的内容复制到文本二中的主要内容,如果未能解决你的问题,请参考以下文章
wxpython 支持python语法高亮的自定义文本框控件的代码
当我按下对话框窗口中的按钮时,如何在该对话框中更改/附加编辑控件框的文本
Python实例讲解 -- wxpython 基本的控件 (按钮)