python的gui中赋值给command,关于Python Tkinter Button控件command传参问题的解决方式

环境:Ubuntu14、Python3.4、Pycharm2018

一、使用command=lambda: 的形式传参

代码如下

from tkinter import *

import tkinter.messagebox as messagebox

def createpage(master):

master = Frame(root)

master.pack()

Label(master, text='num1').grid(row=0, column=0, stick=W, pady=10)

e1 = Entry(master)

e1.grid(row=0, column=1, stick=E)

Label(master, text='num2').grid(row=1, column=0, stick=W, pady=10)

e2 = Entry(master)

e2.grid(row=1, column=1, stick=E)

# Button传递参数

Button(

master, text='加', command=lambda: btn_def(e1.get(), e2.get())

).grid(row=2, column=0, stick=W)

Button(master, text='减').grid(row=2, column=1, stick=E)

Label(master, text='说明').grid(row=3, column=0, stick=W, pady=10)

Label(master, text='只写了加法(请输入简单数字测试button传参)').grid(

row=3, column=1, stick=E

)

def btn_def(num1, num2):

num = int(num1) + int(num2)

messagebox.showinfo('结果', '%d' % num)

if __name__ == '__main__':

root = Tk()

root.title('Demo')

root.geometry('400x150')

createpage(root)

root.mainloop()

二、使用StringVar()和Entry textvariable对参数进行绑定

代码如下

from tkinter import *

import tkinter.messagebox as messagebox

class A:

"""

使用StringVar() 和 textvariable

对Button进行绑定

实现Button对数据进行操作

解决Button传参问题

StringVar()的数需要使用.get()获取值

"""

def __init__(self, master):

self.root = Frame(master)

self.num1 = StringVar() # 第一个数字

self.num2 = StringVar() # 第一个数字

self.createpage()

def createpage(self):

self.root.pack()

Label(self.root, text='num1').grid(row=0, column=0, stick=W, pady=10)

# textvariable和StringVar的num1绑定

Entry(self.root, textvariable=self.num1).grid(row=0, column=1, stick=E)

Label(self.root, text='num2').grid(row=1, column=0, stick=W, pady=10)

# textvariable和StringVar的num2绑定

Entry(self.root, textvariable=self.num2).grid(row=1, column=1, stick=E)

# Button传递参数

Button(

self.root, text='加', command=self.btn_def

).grid(row=2, column=0, stick=W)

Button(self.root, text='减').grid(row=2, column=1, stick=E)

Label(self.root, text='说明').grid(row=3, column=0, stick=W, pady=10)

Label(self.root, text='只写了加法(请输入简单数字测试button传参)').grid(

row=3, column=1, stick=E

)

def btn_def(self):

# 使用.get()获取值

num = int(self.num1.get()) + int(self.num2.get())

messagebox.showinfo('结果', '%d' % num)

if __name__ == '__main__':

root = Tk()

root.title('Demo2')

root.geometry('400x150')

A(root)

root.mainloop()

三、总结

以上两种方式都是使用了Button进行数据事件处理,方法一为Button command下传递参数,方法二为控件下使用textvariable对StringVar的参数进行绑定。(我比较推荐使用方法二)。好了,今天就说到这吧,希望大家多多支持聚米学院!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python GUI框架,如Tkinter,wxPython或PyQt,来设计GUI程序来连接MySQL数据库。您好!如果您想使用Python连接MySQL数据库并创建GUI界面,可以使用PythonTkinter库和MySQL的Python Connector模块来实现。 首先,您需要安装Python Connector模块。您可以使用以下命令在命令行安装: ``` pip install mysql-connector-python ``` 接下来,您需要导入必要的模块和库,包括Tkinter、MySQL Connector和tkMessageBox(可选,用于在GUI显示消息框)。 ``` import tkinter as tk import mysql.connector from tkinter import messagebox as mb ``` 然后,您需要连接MySQL数据库。可以使用以下代码: ``` # 连接数据库 mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) # 创建游标 mycursor = mydb.cursor() ``` 接下来,您可以使用Tkinter创建GUI界面。例如,您可以创建一个包含文本框、按钮和标签的窗口,以便用户可以输入查询并从数据库检索数据。 ``` # 创建GUI窗口 root = tk.Tk() root.title("MySQL数据库查询") # 创建文本框和标签 query_label = tk.Label(root, text="查询语句:") query_label.grid(row=0, column=0) query_entry = tk.Entry(root) query_entry.grid(row=0, column=1) # 创建按钮 search_button = tk.Button(root, text="查询", command=search) search_button.grid(row=1, column=0) # 创建结果标签 result_label = tk.Label(root, text="") result_label.grid(row=2, column=0, columnspan=2) ``` 在上面的代码,我们创建了一个名为“MySQL数据库查询”的窗口,并添加了一个文本框、一个标签、一个按钮和一个结果标签。按钮单击后,将调用名为“search”的函数,该函数将从数据库检索数据并在结果标签显示结果。 最后,您可以定义查询函数,以便在用户单击查询按钮时调用。以下是一个示例查询函数: ``` # 查询函数 def search(): # 获取查询语句 query = query_entry.get() # 执行查询 mycursor.execute(query) result = mycursor.fetchall() # 在结果标签显示结果 result_label.config(text=result) ``` 在上面的代码,我们从文本框获取查询语句,执行查询,并将结果显示在结果标签。 这是一个简单的示例,您可以根据需要进行修改和扩展。希望这可以帮助您入门Python连接MySQL数据库和GUI编程!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值