用Python写一段代码能够实现一个图形化界面,界面最上面有一个”发送人备注名”的文字,这个文字的下面有一个输入框,在输入框下面还有一个文字是“请输入要发送的文字”,在这个文字下有输入框,输入框下有一个选择文件的控件。在按下界面最下方的发送按钮时,程序自动将输入的文字或选择的文件发给微信中同样备注的人,发送完成后,在程序底部显示一行文字“发送完成”,显示两秒后隐藏。(包括选择文件和发送的代码)
时间: 2023-06-10 14:07:30 浏览: 105
通过Python实现微信自动发消息
你需要先安装 wxPython 库来创建 Python 的图形化界面。以下是一个简单的代码示例,其中包含了你所需的所有控件和功能:
```python
import wx
import wx.lib.agw.multidirdialog as MDD
import time
class MyFrame(wx.Frame):
def __init__(self):
super().__init__(None, title='发送微信', size=(400, 300))
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
hbox3 = wx.BoxSizer(wx.HORIZONTAL)
hbox4 = wx.BoxSizer(wx.HORIZONTAL)
self.statictext1 = wx.StaticText(panel, label='发送人备注名')
hbox1.Add(self.statictext1, flag=wx.RIGHT, border=8)
self.textctrl1 = wx.TextCtrl(panel)
hbox1.Add(self.textctrl1, proportion=1)
self.statictext2 = wx.StaticText(panel, label='请输入要发送的文字')
hbox2.Add(self.statictext2, flag=wx.RIGHT, border=8)
self.textctrl2 = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
hbox2.Add(self.textctrl2, proportion=1, flag=wx.EXPAND)
self.statictext3 = wx.StaticText(panel, label='选择文件')
hbox3.Add(self.statictext3, flag=wx.RIGHT, border=8)
self.filepicker = wx.FilePickerCtrl(panel)
hbox3.Add(self.filepicker, proportion=1, flag=wx.EXPAND)
self.send_button = wx.Button(panel, label='发送')
hbox4.Add(self.send_button)
self.send_button.Bind(wx.EVT_BUTTON, self.on_send)
vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
vbox.Add(hbox2, proportion=1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
vbox.Add(hbox3, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
vbox.Add(hbox4, flag=wx.ALIGN_CENTER|wx.BOTTOM, border=10)
panel.SetSizer(vbox)
def on_send(self, event):
# 获取输入框中的数据
send_to = self.textctrl1.GetValue()
message = self.textctrl2.GetValue()
file_path = self.filepicker.GetPath()
# 发送微信
# ...
# 显示发送完成
self.statictext1.SetLabel('发送完成')
self.textctrl1.Hide()
self.textctrl2.Hide()
self.filepicker.Hide()
self.send_button.Hide()
time.sleep(2)
self.statictext1.SetLabel('发送人备注名')
self.textctrl1.Show()
self.textctrl2.Show()
self.filepicker.Show()
self.send_button.Show()
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame()
frame.Show(True)
app.MainLoop()
```
在这个程序中,我们创建了一个继承于 `wx.Frame` 的 `MyFrame` 类,这个类包括了所有的控件和功能。
我们使用 `wx.BoxSizer` 来实现布局,使用 `wx.StaticText` 和 `wx.TextCtrl` 来创建文本标签和输入框,使用 `wx.FilePickerCtrl` 来创建选择文件的控件,使用 `wx.Button` 来创建发送按钮。
当用户按下发送按钮时,我们可以使用 `GetValue` 方法来获取输入框中的数据,然后发送微信。在发送完成后,我们使用 `wx.StaticText` 的 `SetLabel` 方法来显示“发送完成”,然后使用 `Hide` 和 `Show` 方法来隐藏和显示控件,实现界面的切换。我们还使用 `time.sleep` 方法来让程序暂停两秒钟,然后再恢复到原来的状态。
当你运行这个程序时,你应该可以看到一个图形化界面,包含有发送人备注名、要发送的文字、选择文件和发送按钮等控件。当你输入完要发送的文字或选择了文件后,按下发送按钮,程序将会自动发送微信,并在底部显示“发送完成”。两秒钟后,这个信息会自动隐藏。
阅读全文