如果 x 相同,你怎么不打印?
how do you not print if x is the same?
我是 python 的新手。我想创建一个程序,当您将某些内容复制到剪贴板时,它将 'prints' 它放在 'app' 上。它可以工作,但问题是它每两秒钟显示您可能在 2 小时前复制的内容。我希望当剪贴板相同时,它只显示一次,然后一直等到您复制了其他内容。
这是我目前所拥有的
import pyperclip
from tkinter import *
r = Tk()
def aper():
global x
x = pyperclip.waitForPaste()
Label(r, text = x).pack()
r.after(2000, aper)
r.after(2000, aper)
r.mainloop()
谢谢!
你可以创建一个名为 old_x 的变量,将 x 的最后一个值存储在那里,并在 Label 行周围放置一个 if 语句,这样它只在 x 不是 [=13= 时打印]
import pyperclip
from tkinter import *
r = Tk()
def aper():
global x
global old_x
x = pyperclip.waitForPaste()
if x != old_x:
Label(r, text = x).pack()
old_x = x
r.after(2000, aper)
old_x = None
r.after(2000, aper)
r.mainloop()
您可以简单地添加一个 IF 语句来检查 x 的旧值,然后在需要时更新。
那是说我将您导入的 tkinter 替换为 import tkinter as tk
。这将有助于防止覆盖正在导入的任何内容。很好的练习。
这是一个非 OOP 示例。
import tkinter as tk
import pyperclip
r = tk.Tk()
x = ''
def aper():
global x
y = pyperclip.waitForPaste()
if x != y:
x = y
tk.Label(r, text=x).pack()
r.after(2000, aper)
r.after(2000, aper)
r.mainloop()
这是一个 OOP 示例。这有助于避免使用 global
的需要。一般来说,最好避免全局。如果您想了解更多,这里有一些很好的 post。
import tkinter as tk
import pyperclip
class App(tk.Tk):
def __init__(self):
super().__init__()
self.x = ''
print('t')
def aper(self):
y = pyperclip.waitForPaste()
if self.x != y:
self.x = y
tk.Label(self, text=self.x).pack()
self.after(2000, self.aper)
if __name__ == '__main__':
App().mainloop()
我是 python 的新手。我想创建一个程序,当您将某些内容复制到剪贴板时,它将 'prints' 它放在 'app' 上。它可以工作,但问题是它每两秒钟显示您可能在 2 小时前复制的内容。我希望当剪贴板相同时,它只显示一次,然后一直等到您复制了其他内容。 这是我目前所拥有的
import pyperclip
from tkinter import *
r = Tk()
def aper():
global x
x = pyperclip.waitForPaste()
Label(r, text = x).pack()
r.after(2000, aper)
r.after(2000, aper)
r.mainloop()
谢谢!
你可以创建一个名为 old_x 的变量,将 x 的最后一个值存储在那里,并在 Label 行周围放置一个 if 语句,这样它只在 x 不是 [=13= 时打印]
import pyperclip
from tkinter import *
r = Tk()
def aper():
global x
global old_x
x = pyperclip.waitForPaste()
if x != old_x:
Label(r, text = x).pack()
old_x = x
r.after(2000, aper)
old_x = None
r.after(2000, aper)
r.mainloop()
您可以简单地添加一个 IF 语句来检查 x 的旧值,然后在需要时更新。
那是说我将您导入的 tkinter 替换为 import tkinter as tk
。这将有助于防止覆盖正在导入的任何内容。很好的练习。
这是一个非 OOP 示例。
import tkinter as tk
import pyperclip
r = tk.Tk()
x = ''
def aper():
global x
y = pyperclip.waitForPaste()
if x != y:
x = y
tk.Label(r, text=x).pack()
r.after(2000, aper)
r.after(2000, aper)
r.mainloop()
这是一个 OOP 示例。这有助于避免使用 global
的需要。一般来说,最好避免全局。如果您想了解更多,这里有一些很好的 post。
import tkinter as tk
import pyperclip
class App(tk.Tk):
def __init__(self):
super().__init__()
self.x = ''
print('t')
def aper(self):
y = pyperclip.waitForPaste()
if self.x != y:
self.x = y
tk.Label(self, text=self.x).pack()
self.after(2000, self.aper)
if __name__ == '__main__':
App().mainloop()