python-3.x - 单击后更改或删除链接到按钮的命令
问题描述
和 Tkinter 一起玩,遇到了一些麻烦。我有 3 个按钮:
Button1 将使用 Selenium 打开我指定的网站。
Button3 将在网站上执行我的功能。
Button2 将关闭程序。
Problem: I want to keep button1 from opening multiple windows/websites by
either removing/hiding it after it has been clicked or changing the
command
that will be performed by it.
After some googling I found some options and tried the following:
| pack_forget()
| pack_destroy()
| btn1.destroy()
以上所有似乎都没有做任何事情。我错过了什么?
import selenium
from selenium import webdriver
from time import sleep
import time
import tkinter
from tkinter import *
main = Tk()
def Primary():
txt = mtxt.get()
New = Label(main, text=""+txt, fg='Blue').pack(side=BOTTOM)
btn1 = Button(Bot, text='OK', command=Primary,
fg='Green').pack_destroy() #For some reason this does not work
return
def Secondary():
global main
main.destroy()
def Tres():
txt = mtxt.get()
New = Label(main, text=""+txt, fg='Blue').pack(side=BOTTOM)
return
main.geometry('350x400+500+300')
main.title('Title')
mtxt = StringVar()
Top = Frame().pack()
Bot = Frame().pack(side=BOTTOM)
Lbl = Label(main, text='TEXT').pack()
Lbl2 = Label(main, text='TEXT').pack()
Enter = Entry(main, textvariable=mtxt).pack()
btn1 = Button(Bot, text='OK', command=Primary, fg='Green').pack()
btn2 = Button(Bot, text='Cancel', command=Secondary,
fg='Red').pack(side=BOTTOM)
btn3 = Button(Bot, text='Next', command=Tres, fg='Green').pack()
main.mainloop()
预期结果:初始点击时 btn1 执行“command=Primary”
初始点击后 btn1 执行 'command=Tres'
或者
初始点击后,btn1 被破坏/隐藏,btn3 取而代之。
解决方案
推荐阅读
- sql - Postgresql:从日期范围内的多个版本中仅计算一次值
- ruby-on-rails - 如何在没有`bundle exec`的情况下对rails进行rubocop?
- php - 有没有办法在单击链接时将会话变量传递到新选项卡
- python - early_stopping 设置为 False,但迭代在 Sklearn MLPClassifier 中的 max_iter 之前停止
- javascript - 如何让简单的chart.js在网页上刷新
- scala - 在 spark scala 数据帧中迭代时,如何存储指向“从上次中断的地方继续”的指针?
- javascript - 降低时间复杂度并返回格式化对象
- php - AWS S3 Bucket 将特定文件夹及其中的所有文件设为公开
- c++ - 对“vtable for ...”的未定义引用
- sql-server - 如何从 SQL Server 数据库中的所有表中删除 SQL 压缩