标签: tk-toolkit

Ruby是否提供了在OS X上响应Apple Events的机制?

我正在使用Ruby-Tk为OS X开发桌面应用程序,我想为该应用程序提供Apple Events界面.这意味着应用程序将定义它将响应的AppleScript命令字典(对应于发送到应用程序的Apple Events),并且用户/其他应用程序可以使用AppleScript命令编写Ruby-Tk应用程序的脚本.其他脚本语言支持这样的功能 - 通过http://appscript.svn.sourceforge.net/viewvc/appscript/py-aemreceive/上的py-aemreceive库提供Python,并通过http://tclae.sourceforge上的tclAE库提供Tcl .net /.我一直在寻找Ruby中的类似功能,并且空洞.

一个可能的机制是rubyobjc桥,它提供了Ruby和Objective-C之间的低级接口,但是这个gem似乎很少使用,并且在示例和文档中非常缺乏,所以我不确定这是否是一个追求卓有成效的道路.

注意:MacRuby可能有效,但它与Tk不兼容,所以排除了MacRuby.此外,RubyOSA和rb-appscript不是我想要的 - 它们允许Ruby将Apple Events发送到其他应用程序,而不是接收它们.

ruby applescript tk-toolkit appleevents

7
推荐指数
1
解决办法
349
查看次数

ttk造型"TNotebook.Tab"背景和边框宽度不起作用

我一直在玩TKinter试图创建一个多选项卡窗口.

当我尝试的风格TNotebook.Tab它忽略了选项backgroundborderwidth,但它承认foreground.我究竟做错了什么?

以下是代码的相关部分:

COLOR_1 = 'black'
COLOR_2 = 'white'
COLOR_3 = 'red'
COLOR_4 = '#2E2E2E'
COLOR_5 = '#8A4B08'
COLOR_6 = '#DF7401'

#Notebook Style
noteStyler = ttk.Style()
noteStyler.configure("TNotebook", background=COLOR_1, borderwidth=0)
noteStyler.configure("TNotebook.Tab", background=COLOR_1, foreground=COLOR_3, lightcolor=COLOR_6, borderwidth=0)
noteStyler.configure("TFrame", background=COLOR_1, foreground=COLOR_2, borderwidth=0)

#Create Notebook and Tabs
note = ttk.Notebook(gui, style='TNotebook')
myTab = ttk.Frame(note, style='TFrame')
note.add(myTab, text = 'MyTab', compound=tk.TOP)        
note.pack(anchor=tk.W)
Run Code Online (Sandbox Code Playgroud)

这是窗口的图像:

在此输入图像描述

如果它很重要,我在Windows 7 64位上运行python 2.7.

python tk-toolkit tkinter ttk python-2.7

7
推荐指数
1
解决办法
3927
查看次数

Python/Tkinter:动态扩展字体大小以填充框架

我知道您可以通过以下命令让框架小部件扩展并填充其容器中可用的所有区域:frameName.pack(fill = 'both', expand = True)

对于文本的字体大小有何作用?目前我的文本是标签小部件的属性。标签小部件的父级是frameName

我想我可以定义自己的函数来调用以随着labelName.config(fontsize = N)框架变大而更新字体大小,但我不确定如何将它们关联起来。

这就是我的程序现在的样子: 每个块都是一个框架小部件。我希望文本能够扩展以填充框架的某些容量,并响应窗口大小的调整。

python tk-toolkit tkinter

6
推荐指数
1
解决办法
1万
查看次数

为什么有些字符不能在Python的IDLE中输入?

我不知道如何解释这个,实际上我正在寻找解释,所以我只想提一些步骤来重现这个问题.希望有人能够理解和阐述:

  1. Windows 8.1上的Python 3.5.0.(但无论Python和Windows版本如何,这都应该是可重现的.)
  2. 安装波斯标准键盘.(它可以从这里下载.再次我确定问题不仅限于这个特定的键盘,并且在其他一些语言中有一些字符具有相同的问题.只是为了重现性.)
  3. 打开IDLE,将键盘的布局设置为波斯语并键入一些字符.
  4. 对于某些字符,如'Â'(Shift + h).它们打字非常好.
  5. 对于其他一些角色,比如'ی'(d).它们被转换为类似的字符,在本例中为'ي'(注意字形下的小点).
  6. 有些字符无法输入.例如'﷼'(Shift + 4).这些输入为'?' 在IDLE.
  7. 以上所有字符都可以在我安装的几乎任何其他程序中输入.其中一个最简单的是notepad.exe.
  8. 我们可以在另一个程序中输入相同的字符,例如notepad.exe,然后将它们复制并粘贴到IDLE中.这表明IDLE支持unicode字符,只是不能输入它们.

我是IDLE的粉丝.它是标准Python安装附带的轻量级IDE,我不想因此而切换到另一个IDE.但对于我来说,以上是最讨厌IDLE的事情.每当我需要编写一个包含波斯语字符的程序时,我不能相信IDLE正确输入它们,我必须打开其他程序并使用复制粘贴方法.

我正在寻找的是:

  • 为什么会这样?问题出在哪儿?
  • 有没有解决方法?
  • 与此问题直接相关的任何文档或错误报告.

此信息也可能有所帮助:

>>> import locale
>>> locale.getdefaultlocale()
('en_US', 'cp1256')
>>> locale.getpreferredencoding()
'cp1256'
>>> locale.getlocale()
('English_United States', '1252')
>>> 
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
Run Code Online (Sandbox Code Playgroud)

谢谢.

更新:

请参阅下面的前三条评论.似乎这个问题是由在tkinter应用程序中键入时使用WindowsBestFit映射引起的.

为了测试它是否在python/tkinter绑定或tcl/tk本身中的一些错误配置,我下载并安装了Tkabber.这是一个用Tcl/Tk编写的应用程序.那么,存在完全相同的问题,即我不能输入上面的字符,但可以复制和粘贴它们.所以我的结论是问题的根源在于tcl/tk本身而不是IDLE/Python/tkinter.

我的问题仍然存在.

unicode tk-toolkit tkinter codepages python-idle

6
推荐指数
1
解决办法
1102
查看次数

Tk 是否提供对 Wayland 显示协议的支持?

视频向我介绍了 X 的问题以及 Wayland 协议的替代方案。多年来,Wayland 协议的采用似乎在不断增长。

我的问题:

  1. tkinter 和 tcl/Tk 是否会遵守 Wayland 协议?如果是这样,预计什么时候发生?已经发生了吗?路线图是什么?
  2. 使用 Wayland Display 协议将如何改变 tkinter 编程?

tk-toolkit wayland

6
推荐指数
1
解决办法
4867
查看次数

Python 3 Tkinter - 尝试通过一个按钮阻止多个窗口打开

我有一个按钮可以在我的代码上打开一个新窗口,我一直在尝试使该按钮打开一个名为“newest_release_window”的新窗口,并考虑到两件事:

  • 如果“newest_release_window”未打开,请打开该窗口。
  • 如果“newest_release_window”已打开,则将焦点设置在该窗口上,但不要打开新窗口。

不幸的是,它变得太复杂了,我一生都无法弄清楚如何去做。问题是我无法让代码检测“newest_release_window”是否打开,并据此更改变量。

welcome_window = Tk()
welcome_window.title("Games R Us")
welcome_window.geometry("360x350")
welcome_window.configure(bg = "gold")
currentDisplay = 10

newest_release_windowtracker = 0

gui_font_5 = ("Helvetica", 5, "bold")
gui_font_10 = ("Helvetica", 10, "bold")
gui_font_15 = ("Helvetica", 15, "bold")
gui_font_20 = ("Helvetica", 20, "bold")
space_between = (5)
button_variable = IntVar()

def newwindow_newest_release():
    global newest_release_windowtracker
    newest_release_window = Tk()
    newest_release_window.title("Games R Us")

    newest_release_window.geometry("360x350")
    newest_release_window.configure(bg = "greenyellow")
    currentDisplay = 10

    display = Label(newest_release_window, text="Humm, see a new window !", 
    bg ="limegreen")
    display.pack()

    newest_release_window.withdraw()

    if newest_release_windowtracker == 0: …
Run Code Online (Sandbox Code Playgroud)

python tk-toolkit tkinter python-3.x

6
推荐指数
1
解决办法
2419
查看次数

如何在 Python Tkinter 中为 Frame 放置边框

下面是我的 UI,我正在尝试为框架放置边框。但我没有得到关于如何放置边框的任何信息。请帮我解决它。 边框如图所示

python tk-toolkit tkinter python-3.x

6
推荐指数
3
解决办法
3万
查看次数

如何在 Python Tkinter 中仅关闭 TopLevel 窗口?

使用 Python Tkinter ,创建一个子面板(TopLevel)来显示内容并获取用户输入,用户输入后,单击“退出”,发现整个 GUI(主面板)也被破坏。如何只关闭顶层窗口?

from tkinter import *

lay=[]
root = Tk()
root.geometry('300x400+100+50')

def exit_btn():
    top = lay[0]
    top.quit()
    top.destroy()

def create():
    top = Toplevel()
    lay.append(top)

    top.title("Main Panel")
    top.geometry('500x500+100+450')
    msg = Message(top, text="Show on Sub-panel",width=100)
    msg.pack()

    btn = Button(top,text='EXIT',command=exit_btn)
    btn.pack()

Button(root, text="Click me,Create a sub-panel", command=create).pack()
mainloop()
Run Code Online (Sandbox Code Playgroud)

python user-interface tk-toolkit tkinter

6
推荐指数
2
解决办法
1万
查看次数

Tkinter - 几何管理

我看到并看到了很多关于 tkinter 的问题,这些问题通常不是询问代码中的错误,而是询问如何组织我的 GUI。所以我想有一个专注于这一点的答案,并帮助初学者稍微定位一下。

python layout tk-toolkit tkinter

6
推荐指数
1
解决办法
2616
查看次数

TK python 检查按钮 RTL

我有一个复选按钮:

from tkinter import *
master = Tk()
Checkbutton(master, text="Here...").grid(row=0, sticky=W)
mainloop()
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

在此输入图像描述

我尝试将复选按钮移到另一侧(以支持 RTL 语言),所以它会像:

Here...[]

我知道我可以在复选按钮旁边绘制一个标签,但这样单击文本不会影响复选按钮。

我该怎么做?

python tk-toolkit tkinter right-to-left tkinter.checkbutton

6
推荐指数
1
解决办法
330
查看次数