标签: tkinter

如何在Tkinter应用程序上运行unittest?

我刚刚开始学习TDD,我正在使用Tkinter GUI开发一个程序.唯一的问题是,一旦.mainloop()调用该方法,测试套件就会挂起,直到窗口关闭.

这是我的代码示例:

# server.py
import Tkinter as tk

class Server(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.mainloop()
Run Code Online (Sandbox Code Playgroud)

# test.py
import unittest
import server

class ServerTestCase(unittest.TestCase):
    def testClassSetup(self):
       server.Server()
       # and of course I can't call any server.whatever functions here

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

测试Tkinter应用程序的适当方法是什么?还是只是'不'?

python tdd unit-testing tkinter

19
推荐指数
2
解决办法
6364
查看次数

为什么 tkinter(或海龟)似乎丢失或损坏?它不应该是标准库的一部分吗?

当尝试使用 Tkinter 标准库包或其相关功能(海龟图形使用turtle和内置 IDLE IDE)或使用将此作为依赖项的第三方库(例如显示使用 Matplotlib 的图形窗口)。

似乎即使不存在因隐藏标准库模块名称而引起的问题(对于尝试遵循教程并使用海龟图形的初学者来说,这是一个常见问题 -示例 1示例 2示例 3示例 4),通常会发生标准库 Tkinter 无法工作的情况。这是一个大问题,因为许多初学者再次尝试遵循使用海龟图形的教程,并盲目地假设turtle标准库将会存在。

可能会报错:

当 Tkinter 被记录为标准库的一部分时,为什么会出现这样的问题?如何添加或修复缺少的标准库功能?对于特定的 …

python installation tkinter modulenotfounderror

19
推荐指数
1
解决办法
9813
查看次数

制作python/tkinter标签小部件更新?

我正在努力获取python/tkinter标签小部件来更新其内容.根据今天的早期主题,我按照如何组合小部件的说明进行操作.但是,在运行时,标签小部件不会更改内容,而只是保留其原始内容.据我所知,从来没有调用decrement_widget().有任何想法吗?

def snooze (secs):
  """
  Snoozes for the given number of seconds. During the snooze, a progress
  dialog is launched notifying the 
  """

  root = Tkinter.Tk()
  prompt = 'hello'
  label1 = Tkinter.Label(root, text=prompt, width=len(prompt))
  label1.pack()

  remaining = secs

  def decrement_label ():
    text = "Snoozing %d sec(s)" % remaining
    remaining -= 1
    label1.config(text=text, width=100)
    label1.update_idletasks()

  for i in range(1, secs + 1):
    root.after(i * 1000, decrement_label )

  root.after((i+1) * 1000, lambda : root.destroy())
  root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter

18
推荐指数
2
解决办法
8万
查看次数

Tkinter值得学习吗?

我通常使用Qt制作我的桌面界面,但最近的一些TK截图让我觉得Tk不仅仅是丑陋的主题了.此外,Tkinter捆绑了Python,这使得分发更容易.

那么值得学习还是我应该坚持使用Qt?

示例tk界面http://www.kb-creative.net/screenshots/ipats-multifile.gif

python user-interface qt tk-toolkit tkinter

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

如何在Tkinter应用程序中嵌入终端?

我想在我的主要Tkinter窗口中嵌入一个终端.我想有一个子窗口,其中一个终端(基于Bash的终端)将运行.我也希望能让我的程序与终端进行交互,至少我想阅读当前的工作目录和/或设置它.

我不知道这是不是真的不可能.我过去能用Perl/Tk做到这一点,所以也许它可以在这里复制.

我之后使用的代码类似于:

$frame3=$mw->Frame(-borderwidth=>2, -relief=>'groove', # -label=>'stuff for thought',
                             -labelBackground=>CADRAWWINCOLOR,-background=>CADRAWWINCOLOR);                 

$cv=$frame3->Canvas(-height=>$cvheight,-width=>$cvwidth,-background=>CADRAWWINCOLOR,
                             -bg => CADRAWWINCOLOR,
                             -relief => 'sunken')->pack(-expand => 1, -fill => 'both');

# this Frame is needed for including the xterm in Tk::Canvas 
my $xtermContainer = $cv->Frame(-container => 1);
my $xtid = $xtermContainer->id();
# converting the id from HEX to decimal as xterm requires a decimal Id
my ($xtId) = sprintf hex $xtid;

my $dcontitem = $cv->createWindow($xtermWidth/2,$xtermHeight/2,
                                       -window => $xtermContainer,
                                       -width => $xtermWidth,
                                       -height => $xtermHeight,
                                       -state => 'normal');

system("xterm …
Run Code Online (Sandbox Code Playgroud)

python tkinter

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

在Tkinter中关闭窗口的功能

import tkinter


class App():
   def __init__(self):
       self.root = Tkinter.Tk()
       button = Tkinter.Button(self.root, text = 'root quit', command=self.quit)
       button.pack()
       self.root.mainloop()

   def quit(self):
       self.root.destroy 

app = App()
Run Code Online (Sandbox Code Playgroud)

如何使我的quit功能关闭窗口?

python tkinter

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

使用Tkinter中的按钮导航到应用程序的不同页面?

我这里有一个很简单的问题.在Tkinter(python)中,我想知道谁使用按钮转到我的应用程序的不同页面,例如注册页面和登录页面.我知道GUI不像网站那样有"页面",我已经看到了几种不同的方式,但是链接到不同页面的最佳方式是什么?

非常感谢你们!

python user-interface tkinter

18
推荐指数
2
解决办法
4万
查看次数

Tkinter Grid:如何定位小部件,使它们不会粘在一起

我正在尝试创建两个Label小部件,它们位于我的测试UI的左上角和右上角.问题是小部件粘在一起,我希望它们之间有空间.

在我的研究中,我遇到了使用粘性,padx和pady选项的建议.但无论我传递给.grid()的参数是什么,我似乎都无法在我的小部件之间创建空间.我知道,无论两个小部件之间的列数和行数是多少,如果所述行/列都是空的,那么它就好像它们不存在并且小部件看起来粘在一起.

使用.grid()方法,如何定位小部件以使它们不会粘在一起?

到目前为止,这是我的代码:

#!/usr/bin/python
from Tkinter import *

class MyApp:
    def __init__(self, parent):
        self.myParent = parent
        self.main_container = Frame(parent)
        self.main_container.grid(row=0, rowspan=2, column=0, columnspan=4)

        self.top_frame = Frame(self.main_container)
        self.top_frame.grid(row=0, column=0, columnspan=4)

        self.top_left = Frame(self.top_frame)
        self.top_left.grid(row=0, column=0, columnspan=2)

        self.top_right = Frame(self.top_frame)
        self.top_right.grid(row=0, column=2, columnspan=2)

        self.bottom_frame = Frame(self.main_container)
        self.bottom_frame.grid(row=2, column=0, columnspan=4)

        self.top_left_label = Label(self.top_left, text="Top Left")
        self.top_left_label.grid(row=0, column=0, sticky='W', padx=2, pady=2)

        self.top_right_label = Label(self.top_right, text="Top Right")
        self.top_right_label.grid(row=0, column=4, sticky='E', padx=2, pady=2)

        self.text_box = Text(self.bottom_frame, height=5, width=40)
        self.text_box.grid(row=0, column=0)

root = Tk()
root.title("Test UI") …
Run Code Online (Sandbox Code Playgroud)

python tkinter

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

Python没有为Tk配置

我使用pyenv使用Ubuntu 13.10和Python 3.3.4 .我使用其他模块没有问题.当我进入python控制台并写入

import tkinter
Run Code Online (Sandbox Code Playgroud)

它输出

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/serdar/.pyenv/versions/3.3.4/lib/python3.3/tkinter/__init__.py", line 40, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named '_tkinter'
Run Code Online (Sandbox Code Playgroud)

我已经安装python3-tktk-devel.

python tkinter python-3.x

18
推荐指数
2
解决办法
7792
查看次数

如何使用Tkinter清除整个Treeview

我的程序使用一个ttk.Treeview表作为一个表,并用许多数字填充它.

ttk.Treeview当我按下窗口中的按钮时,我想清除它.

有没有一种简单的方法来清除ttk.Treeview

谢谢.

python treeview tkinter

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