wxpython,有两个文本框,三个按钮控件,按下按钮便可以将文本框一中的内容复制到文本二中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wxpython,有两个文本框,三个按钮控件,按下按钮便可以将文本框一中的内容复制到文本二中相关的知识,希望对你有一定的参考价值。

这三个按钮的功能都是一样的,函数的写法可以相同,函数名不同便可。最好是将文本框一中的内容取出保存在放到文本二中。(给出完整代码,不要问为什么三个按钮,分数好商量)

参考技术A #coding=utf-8
import 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 #python33

from 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修改文本框颜色

wxpython 支持python语法高亮的自定义文本框控件的代码

当我按下对话框窗口中的按钮时,如何在该对话框中更改/附加编辑控件框的文本

Python实例讲解 -- wxpython 基本的控件 (按钮)

iOS基础控件之UILabelUITextFieldUIButton(文本输入框按钮)

为啥我的文本在 wxPython 中没有正确对齐?