以下代码在MS Windows中正常工作(按时脚本将退出q
):
import Tkinter as tk
class App():
def __init__(self):
self.root = tk.Tk()
self.root.geometry("{0}x{1}+0+0".format(
self.root.winfo_screenwidth(), self.root.winfo_screenheight())
)
self.root.overrideredirect(True)
tk.Label(text="some text here").grid()
self.root.bind('q', self.appexit)
self.root.mainloop()
def appexit(self, event):
self.root.destroy()
App()
我试图在“无窗口管理器”的Debian环境中运行它(引导至控制台,运行startx
,它通过.xinitrc
(那里唯一的命令)启动脚本)。
该脚本按预期方式启动,但按q
任何操作均不执行任何操作(我原本希望X
关闭并返回至文本控制台)。后来我尝试添加,以防万一self.root.focus()
,mainloop()
但这并没有帮助。
MS Windows和Debian环境之间这种不同行为的原因可能是什么?
使用overrideredirect程序会失去与窗口管理的联系,因此似乎无法获得有关按键的信息,甚至无法获得焦点。
MS Windows是一个大的窗口管理器,因此似乎overrideredirect
无法在该系统上运行。
也许您可以self.root.attributes('-fullscreen', True)
代替self.root.overrideredirect(True)
顺便说一句:我用于测试self.root.after(5000, self.root.destroy)
-在无法控制5秒后杀死窗口。
编辑:
一些(有效的)示例fullscreen
。
overrideredirect
在Linux上使用时,程序可以获取键盘事件,因此绑定不起作用,并且您无法集中注意力Entry()
。但是鼠标和Button()
作品。overrideredirect
适用于带或不带按钮的“启动画面”。
import Tkinter as tk
class App():
def __init__(self):
self.root = tk.Tk()
# this works
self.root.attributes('-fullscreen', True)
# this doesn't work
#self.root.overrideredirect(True)
#self.root.geometry("800x600+100+100") # to see console behind
#self.root.after(5000, self.appexit) # to kill program after 5s
self.root.bind('q', self.q_pressed)
tk.Label(text="some text here").grid()
e = tk.Entry(self.root)
e.grid()
e.focus() # focus doesn't work with overrideredirect
tk.Button(self.root, text='Quit', command=self.appexit).grid()
self.root.mainloop()
def q_pressed(self, event):
print "q_pressed"
self.root.destroy()
def appexit(self):
print "appexit"
self.root.destroy()
App()
问题内容: 我有一个JList和ArrayList。如何将arraylist中的数据绑定到jlist.Ares有替代方法吗? 如何绑定以上代码。现在代码给出错误。 问题答案: 您无需克隆ArrayList。只需调用toArray()
问题内容: 我目前正在使用 属性启动Java VM,以便可以通过JConsole连接到Java VM 进行管理和监视。不幸的是,它监听计算机上的所有接口(IP地址)。 在我们的环境中,通常情况下,一台机器上同时运行多个Java VM。尽管可以告诉JMX侦听不同的TCP端口(使用),但是最好让JMX使用标准的JMX端口并仅绑定到特定的IP地址(而不是所有IP地址)。 这将使查找通过JConsole连
问题内容: 编程新手,尤其是python和tKinter。如何创建将键“s”绑定到按钮或功能的方法?任何帮助都是极好的。 问题答案: 您需要进行两项更改: 加 到。(绑定到Frame似乎无效。) 当按下时,会被调用。由于Tkinter将发送对象,因此我们还必须将呼叫签名更改为 因此,当按下按钮时,将被设置为默认值,但是当按下按键时, 将被分配给对象。
问题内容: 我只是想知道在Tkinter中是否可以将click事件绑定到画布。 我希望能够在画布上单击任意位置,然后将一个对象移到画布上。我能够提出议案,但是我还没有找到在画布上绑定click事件的方法。 问题答案: 直接取自Effbot关于事件的教程中的示例。 在此示例中,我们使用框架小部件的bind方法将回调函数绑定到名为的事件。运行该程序,然后在出现的窗口中单击。每次单击,都会在控制台窗口中
问题内容: 我需要将 DataTable 绑定到 DataGridView 。我这样做: 但我得到的是 数据表中 增加了新的 列到我 的DataGridView 。我不需要这个,我只需要在现有列下编写即可。 拜托,帮帮我,伙计们! 问题答案: 尝试这个: 如果您不想清除所有现有的列,则必须为每个现有的列进行设置,如下所示:
有没有一种方法可以直接将memcached绑定到它下面的本地存储?将用一个例子来解释。假设hbase被用作分布式的后端。memcached的一层被用作缓存层,它可以被认为是hbase的一个完全副本(在某种意义上)。假设系统中有4个节点,其中3个用于hbase并在其顶部有一个memcached层,1个节点用于计算。通常的规范是查找memcached是否有某个键。如果有,取出来并用于计算。如果没有,则