我正在尝试使画布可滚动.但是,一旦我尝试设置滚动条以使用画布,tkinter似乎完全忽略了我最初为画布设置的尺寸.我已经尝试将它们全部打包在一个框架中,将画布设置为填充框架然后设置框架尺寸,但这会出现同样的问题,除非我将框架设置为填充窗口,这不是我想要的.基本上,我想要一个带有滚动条的固定大小的画布.我当前的代码看起来像这样(在python 3.1中):
from tkinter import *
root=Tk()
frame=Frame(root,width=300,height=300)
frame.grid(row=0,column=0)
canvas=Canvas(frame,bg='#FFFFFF',width=300,height=300,scrollregion=(0,0,500,500))
hbar=Scrollbar(canvas,orient=HORIZONTAL)
hbar.pack(side=BOTTOM,fill=X)
hbar.config(command=canvas.xview)
vbar=Scrollbar(canvas,orient=VERTICAL)
vbar.pack(side=RIGHT,fill=Y)
vbar.config(command=canvas.yview)
canvas.config(width=300,height=300)
canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set)
canvas.pack(side=LEFT,expand=True,fill=BOTH)
root.mainloop()
Run Code Online (Sandbox Code Playgroud) 有谁知道如何让图标不显示?我正在寻找一种没有图标的方法.
我的C++应用程序嵌入了Python解释器,但在关闭时似乎遇到了一些麻烦.在主窗口关闭后,我得到一个分段错误(这是Windows,但无论如何我们称之为分段错误).堆栈跟踪如下:
#0 102AD580 tk85!Tk_MainWindow() (C:\Users\... 1.3\bin\Debug\lib\tk85.dll:??)
#1 103082DD tk85!XSetStipple() (C:\Users\... 1.3\bin\Debug\lib\tk85.dll:??)
#2 102214A3 ??() (C:\Users\...1.3\bin\Debug\lib\tk85.dll:??)
#3 10220000 ??() (??:??)
#4 00000000 ??() (??:??)
Run Code Online (Sandbox Code Playgroud)
我甚至会在哪里开始调试这个问题?它似乎是可重复的.
我正在寻找Python 模块的完整在线参考tkinter.我试图自己找一个,但出于某种原因,我不能.
为了澄清,我不是在寻找一个教程.相反,我希望有一个所有可用类和属性的参考.
例如,如果我写这段代码:
from tkinter import *
root = Tk()
root.title("My title")
Run Code Online (Sandbox Code Playgroud)
我想知道:Tk该类接受实例化的可选参数是什么?Tk对象的属性和方法是什么?什么参数title接受?等等...
显然,"看来源"不是这个问题的答案.
我的理解是,在初始化方法中的所有框架和小部件之后__init__,tkinter窗口会调整大小以适应所有这些组件.
我想将窗口的初始化大小设置为其最小大小.我希望能够最大化并扩大窗口的大小,但我从不希望窗口足够小以开始隐藏窗口小部件.
我该如何做到这一点?
考虑这个简单的代码:
from Tkinter import *
import ttk
root= Tk()
ttk.Label(root, text='Heading Here').grid(row=1, column=1)
ttk.Separator(root,orient=HORIZONTAL).grid(row=2, columnspan=5)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,分隔符几乎不可见.

我用红色箭头标记它,如果你能看到它是一个小点类的东西.
如何使分隔符跨越整个水平宽度,或者至少可见?
我想在我的运行在ubuntu上的python脚本中显示一个信息窗口.我正在使用以下代码:
import tkMessageBox
tkMessageBox.showinfo("Say Hello", "Hello World")
Run Code Online (Sandbox Code Playgroud)
这样可以,但是会显示一个空窗口,顶部有消息框.如何摆脱窗口并将消息框置于屏幕中心(窗口管理器是gnome 2)?
这只是为了显示来自命令行脚本的一些信息(密码,这就是为什么我不想将它回显到控制台).
如何将我的Python应用程序转换为.exe?我制作了一个程序,tkinter并想知道如何让其他人使用它.我使用Python 3.3.我搜索了一下但找不到任何东西.
在Python tkinter模块,<Button-1>,<Button-2>和<Button-3>分别用于确定左,中,右按钮鼠标按钮点击.
同样,<KeyPress-Return>用于返回键按下.
我在哪里可以找到所有此类事件的列表,包括各种键盘键的名称?
Tcl绑定手册没有那些.
import TkMessageBox
Run Code Online (Sandbox Code Playgroud)
当我输入TkMessageBox它显示messsge "导入错误:没有模块名为'TkMessageBox’.
据我所知使用python 3.3.2和Tk 8.5.
我使用错误版本的python或导入错误吗?
任何答案都非常有用.或者在我使用的版本中有类似的东西吗?
tkinter ×10
python ×8
python-3.x ×2
tk-toolkit ×2
c++ ×1
compilation ×1
embed ×1
events ×1
exe ×1
python-3.3 ×1
scrollbar ×1
tcl ×1
ttk ×1