标签: tk-toolkit

tkinter.TclError:未知选项

更新: 这只是创建 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)

python user-interface tk-toolkit tkinter

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

tkinter python 的全局变量问题

我正在尝试创建一个简单的界面来访问具有第一个、最后一个、上一个和下一个功能的名称数组。但是我用作位置跟踪器的全局变量不起作用。我已经提到了各种问题。非常感谢您的帮助。这是代码。

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)

python tk-toolkit tkinter python-3.x

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

获取 ttk.Frame 的默认背景

我通过调整这个例子并将它的移植到 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)

python tk-toolkit canvas tkinter ttk

3
推荐指数
1
解决办法
3856
查看次数

只读模式下的 tk 条目背景颜色更改

嗨,我有一个要求,我需要创建表格并且单元格是只读的。但是随着只读模式,单元格需要有彩色背景。现在有了给定的选项,我尝试做类似下面的事情,但没有运气。由于我正在学习 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)

tk-toolkit tcl gtkentry

3
推荐指数
1
解决办法
2168
查看次数

如何在 Linux 上从 Tcl/Tk 打开 URL

如何使浏览器从 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)

linux url tk-toolkit tcl

3
推荐指数
1
解决办法
1313
查看次数

Tkinter 滚动条不工作

我有一段在 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() 的行中,但我阅读了文档,它似乎是正确的。明天我计划在构建框架后尝试将框架加载到画布中。

但与此同时,如果这不起作用,任何帮助都会很棒!谢谢!

python tk-toolkit tkinter python-3.x tkinter-canvas

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

带有 LIKE 搜索的 Python Tkinter 自动完成组合框?

我正在尝试使用预定义的值填充 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)

sqlite combobox tk-toolkit tkinter python-2.7

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

如何调整组合框下拉列表中的字符?

如何证明 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)

python combobox tk-toolkit tkinter ttk

3
推荐指数
1
解决办法
5203
查看次数

尽管我只给了它两列,为什么树视图小部件要放置一个额外的列?我也无法控制它的宽度

  1. 我不知道如何控制小部件的宽度
  2. 我无法让它只显示 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)

python treeview tk-toolkit tkinter python-2.7

3
推荐指数
1
解决办法
1608
查看次数

Tkinter 中的双缓冲是什么意思?

我想我在互联网上看到过类似的内容:Tkinter 使用双缓冲来避免闪烁。
这意味着什么以及如何以及在哪里?

tk-toolkit tkinter

3
推荐指数
1
解决办法
353
查看次数