更新: 这只是创建 btComputePayment 时的一个错字。
解决了
我正在使用“Python 编程简介(Pearson 2013)”一书学习 Python。
目前我正在做一个练习,我必须在 Tkinter 中编写一个贷款计算器。
我似乎无法让以下代码工作:
from tkinter import *
class LoanCalculator:
def __init__(self):
window = Tk()
window.title("Loan Calculator")
# Create labels
Label(window, text = "Annual Interest Rate").grid(row = 1, column = 1, sticky = W)
Label(window, text = "Number of Years").grid(row = 2, column = 1, sticky = W)
Label(window, text = "Loan Amount").grid(row = 3, column = 1, sticky = W)
Label(window, text = "Monthly Payment").grid(row = 4, column = 1, …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个简单的界面来访问具有第一个、最后一个、上一个和下一个功能的名称数组。但是我用作位置跟踪器的全局变量不起作用。我已经提到了各种问题。非常感谢您的帮助。这是代码。
from tkinter import Tk, Label, Entry, Button, StringVar, IntVar
window = Tk()
name_array = [('a1','a2','a3'), ('b1','b2','b3'), ('c1','c2','c3'),('d1','d2','d3')]
global position_track
position_track = IntVar()
first_name = StringVar()
last_name = StringVar()
email = StringVar()
def return_value(pos):
first_name.set(name_array[pos][0])
last_name.set(name_array[pos][1])
email.set(name_array[pos][2])
def update_value(pos):
name_array[pos] = (first_name.get(), last_name.get(), email.get())
def first_value():
global position_track
return_value(0)
postion_track.set(0)
def last_value():
global position_track
return_value(-1)
postion_track.set(-1)
def next_value():
global position_track
if position_track.get() == len(name_array):
position_track.set(1)
temp = postion_track.get()
return_value(temp + 1)
postion_track.set(temp + 1)
def prev_value():
global position_track
if position_track.get() …Run Code Online (Sandbox Code Playgroud) 我通过调整这个例子并将它的移植到 Python3 ,将滚动条与 ttk notebook 结合起来。
我尽可能频繁地使用 ttk 小部件来获得更“现代”的用户界面。但是,没有 ttk 画布小部件,所以我使用了标准的 tkinter 画布。默认情况下,画布小部件的背景颜色似乎是白色(至少在 Mac OS 上),而所有 ttk 小部件的默认背景都是灰色(请参见下面的屏幕截图)。
如何获取包含标签小部件的 ttk 框架的默认背景,以便我可以将其传递到画布Canvas(parent, background='bg_color')并删除包含 ttk 标签的 ttk 框架周围的空白区域?
我知道 ttk 用于styles定义小部件的外观。但是,我不知道如何读取(默认)样式的背景值。

#!/usr/bin/env python3
# coding: utf-8
from tkinter import *
from tkinter import ttk
master = Tk()
def populate():
"""Put in some fake data"""
for row in range(100):
ttk.Label(frame, text="%s" % row, width=3, borderwidth="1", relief="solid").grid(row=row, column=0)
t="this is the second column for row %s" % row …Run Code Online (Sandbox Code Playgroud) 嗨,我有一个要求,我需要创建表格并且单元格是只读的。但是随着只读模式,单元格需要有彩色背景。现在有了给定的选项,我尝试做类似下面的事情,但没有运气。由于我正在学习 GUI 设计,我不确定使用给定命令是否可以使用只读模式获取彩色背景:
package require Tk
set val1 "12";
set cols 5;
set rows 5;
set cell 0;
set mytable [table .tb -cols $cols -rows $rows];
set myentry [entry .e1 -textvariable val1 -state readonly -background red];
#set myentry [entry .e1 -textvariable val1 -background red];
set myentry1 [entry .e2 -textvariable val1 -state readonly -background yellow];
#set myentry1 [entry .e2 -textvariable val1 -background yellow];
$mytable window configure 0,1 -window $myentry;
$mytable window configure 3,0 -window $myentry1;
pack $mytable -fill both -expand true; …Run Code Online (Sandbox Code Playgroud) 如何使浏览器从 Linux 上的 Tcl/Tk 打开给定的 URL?
我在 Windows 上使用这个程序,但我不知道在 Linux 上该怎么做。
proc open_url {url} {
eval exec [auto_execok start] $url
}
#example call:
open_url http://example.com
Run Code Online (Sandbox Code Playgroud) 我有一段在 python 3.4 上运行的 tkinter 代码,它是一个放置在带有垂直滚动条的画布中的大框架,但是滚动条呈灰色,并且似乎与框架的大小无关。我使用的代码本质上是:
class EntryWindow:
def __init__(self, master):
self.master = master
self.master.minsize(750, 800)
self.master.maxsize(1000, 800)
self.canvas = tk.Canvas(self.master, borderwidth=0, bg='#ffffff')
self.vsb = tk.Scrollbar(self.master)
self.master_frame = tk.Frame(self.canvas)
self.vsb.pack(side="right", fill='y')
self.canvas.pack(side='left', fill='both', expand=True)
self.canvas.create_window((0,0), window=self.master_frame, anchor='nw', tags='self.master_frame')
self.canvas.config(yscrollcommand=self.vsb.set)
self.master_frame.grid()
###build widgets and place into master_frame
...
Run Code Online (Sandbox Code Playgroud)
其中master_frame充满了使用网格几何管理器放置的约 36 个小部件,并达到约 2000 像素的垂直高度,但滚动条不起作用。
我看到一篇关于使用 ttk 滚动条的帖子,但是当我导入时我无法让它工作。我使用的输入语句是:
import tkinter as tk
import tkinter.ttk as ttk
Run Code Online (Sandbox Code Playgroud)
然后将该行替换self.vsb = tk.Scrollbar(self.master)为self.vsb = ttk.Scrollbar(self.master)但这也没有解决问题。我还尝试删除 master 上的最小/最大尺寸(这些不是最终值,我一直在使用它)。
我做错了什么吗?我觉得它可能在我设置 canvas.config() 的行中,但我阅读了文档,它似乎是正确的。明天我计划在构建框架后尝试将框架加载到画布中。
但与此同时,如果这不起作用,任何帮助都会很棒!谢谢!
我正在尝试使用预定义的值填充 Tkinter 组合框以供选择。它正在填充,我可以输入并获得建议。但是,为了做到这一点,我必须绝对知道前几个字符。如果我知道字符串中间或末尾的一些文本,则它没有用,因为组合框只执行'LIKE%' 搜索而不是 '%LIKE%' 搜索。
预期输出(输入“Ceramic”一词会获取包含该字符串的所有名称。注意:这不是 Tkinter 屏幕截图):
这是我迄今为止对代码的改编,如果有人可以建议如何修改AutocompleteCombobox类以进行 LIKE 搜索,那就太好了。
作为示例,以下工作代码具有值 "Cranberry" 和 "Strawberry" ,我的要求是键入 "berry" 并获得两种水果的建议。
import Tkinter
import ttk
import sqlite3
class AutocompleteCombobox(ttk.Combobox):
def set_completion_list(self, completion_list):
"""Use our completion list as our drop down selection menu, arrows move through menu."""
self._completion_list = sorted(completion_list, key=str.lower) # Work with a sorted list
self._hits = []
self._hit_index = 0
self.position = 0
self.bind('<KeyRelease>', self.handle_keyrelease)
self['values'] = self._completion_list # Setup our popup menu
def …Run Code Online (Sandbox Code Playgroud) 如何证明 a 的下拉部分中列出的值合理ttk.Combobox?我已经尝试过justify='center',但这似乎只配置所选项目。如果有的话也可以使用资源链接,我找不到它。
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
import tkinter.ttk as ttk
except ImportError:
import Tkinter as tk
import ttk
if __name__ == '__main__':
root = tk.Tk()
cbb = ttk.Combobox(root, justify='center', values=(0, 1, 2))
cbb.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud) 我无法让它只显示 2 列
from Tkinter import *
from ttk import Treeview
root = Tk()
tree = Treeview(root, height = 10, columns = 2)
tree['columns'] = ('one','two')
tree.column('one', width = 50)
tree.column('two', width = 50)
tree.heading('one', text = 'UserName', anchor = 'center')
tree.heading('two', text = 'ID', anchor = 'centeenter code herer')
tree.grid(row = 3, column = 0)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)我想我在互联网上看到过类似的内容:Tkinter 使用双缓冲来避免闪烁。
这意味着什么以及如何以及在哪里?
tk-toolkit ×10
tkinter ×8
python ×6
combobox ×2
python-2.7 ×2
python-3.x ×2
tcl ×2
ttk ×2
canvas ×1
gtkentry ×1
linux ×1
sqlite ×1
treeview ×1
url ×1