标签: tkinter

在Python中将类导入另一个类

因为我还在学习python,所以我遇到了一个问题.

为什么这样做:

class SomeOtherClass(object):
    def __init__(self):
        self.number = 10
        print(self.number)

    def increase(self):
        self.number += 1
        print(self.number)

class MyMainClass(object):
    def __init__(self):
        self.otherClass = MyClass()

app = MyMainClass() #Output: 10
app.otherclass.increase() #Output: 11
Run Code Online (Sandbox Code Playgroud)

但这不是:

from tkinter import *

class MyMainClass(object):
    def __init__(self):
        self.tk = Tkinter() # <-- Error: see below.

app = MyMainClass()
app.tk.title("My window")
...
Run Code Online (Sandbox Code Playgroud)

两次我都包括一个类,但在第二个例子中它说:

NameError:未定义全局名称"Tkinter"

这些示例之间的区别在哪里,我如何解决这个问题,所以我能在课堂上使用tkinter?

谢谢你的帮助.

python import tkinter python-3.x

-1
推荐指数
1
解决办法
479
查看次数

将目录名称传递给askopenfilename

我有三个功能;用户选择dirBut一个目录,其输出进入dirname并更新一个Entry框。在第三个函数 中,dataInput用户选择一个文件。我希望打开文件对话框在用户先前选择并由 定义的目录中打开dirname,但是,我不确定如何传递dirname给句柄,以便我可以使用它,因为askopenfilenameaskdirectory从按钮调用的。

def UserFileInput(self,status,name):
    row = self.row
    optionLabel = tk.Label(self)
    optionLabel.grid(row=row, column=0, sticky='w')
    optionLabel["text"] = name
    text = status
    var = tk.StringVar(root)
    var.set(text)
    w = tk.Entry(self, textvariable= var)
    w.grid(row=row, column=1, sticky='ew')
    self.row += 1

    return w, var


def askdirectory(self):
    dirname = tkFileDialog.askdirectory()
    if dirname:
      self.directoryEntry.delete(0, tk.END)
      self.directoryEntry.insert(0, dirname)


def askfilename(self):
  filename = tkFileDialog.askopenfilename(initialdir=dirname)
  if filename:
    self.dataInput.delete(0, tk.END)
    self.dataInput.insert(0, filename)

currentDirectory = os.getcwd()
directory,var …
Run Code Online (Sandbox Code Playgroud)

python user-interface tkinter

-1
推荐指数
1
解决办法
8722
查看次数

更改tkinter小部件位置

我的代码类似于以下内容

import tkinter as tk
from tkinter import Tk
from tkinter import ttk

root = Tk()

ttk.Label(root, text = 'label text', justify = 'center').grid(row=0, column=0)
string = tk.StringVar()
string.set('entry text')
ttk.Entry(root, textvariable = string).grid(row=0, column=1)
mainButton = ttk.Button(root, text = 'BUTTON').grid(row = 1, columnspan = 2)

root.pack()
Run Code Online (Sandbox Code Playgroud)

实际上,这使得第一行在其旁边有一个标签和一个文本框,在同一行上,然后是两个下面的按钮.现在,当按下该按钮时,我想在包含按钮的行中添加新标签/条目,并将按钮向下移动一行.有可行的方法吗?

python user-interface tkinter

-1
推荐指数
1
解决办法
2960
查看次数

Python tkinter GUI 冻结/崩溃

from Tkinter import *
import tkFileDialog
import tkMessageBox
import os
import ttk

import serial
import timeit
import time

######################################################################################
class MyApp:
    def __init__(self, parent):
########################################################
#Setup Frames

        self.MiddleFrame = Frame(parent) #Middle Frame
        self.MiddleFrame.pack()
        #GLOBAL VARIABLES
        self.chip_number = 0 #number of chip testing
###########################################
        #Middle Frame setup  
        Label(self.MiddleFrame, text='Done').grid(row=8, column=1, sticky = E)
        self.Done = Canvas(self.MiddleFrame, bg="yellow", width=10, height=10)
        self.Done.grid(row=8, column=2)         
        Label(self.MiddleFrame, text='Chip Number:').grid(row=9, column=1, sticky = E)
        #start button
        self.button1 = Button(self.MiddleFrame,state=NORMAL, command= self.start_pre)
        self.button1["text"]= "START"
        self.button1.grid(row=1, column=2, sticky = …
Run Code Online (Sandbox Code Playgroud)

python tkinter

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

如何使工具提示出现在由框包围的画布区域上?

我试图弄清楚如何使工具提示出现在由框包围的画布区域上。理想情况下,如果用户将鼠标悬停在点上并且误差范围在 10 像素以内,就会出现工具提示。

import tkinter as tk;
from idlelib.ToolTip import ToolTip;

windowWidth = 960;
windowHeight = 720;
canvasWidth = windowWidth - 10;
canvasHeight = windowHeight - 10;

''' Main Window '''
root = tk.Tk();
root.resizable(width=False, height=False);
root.geometry('{}x{}'.format(windowWidth, windowHeight));
root.title('Sample');

''' Canvas '''
canvas = tk.Canvas(root,
              width = canvasWidth,
              height = canvasHeight,
              bg = 'grey');
canvas.pack(side = tk.RIGHT, padx = 5);

xo = canvasWidth / 2
yo = canvasHeight / 2;
point = canvas.create_rectangle(xo - 1, yo - 1, xo + …
Run Code Online (Sandbox Code Playgroud)

python tkinter tooltip

-1
推荐指数
1
解决办法
2499
查看次数

Tkinter:使框架与主窗口大小相同

我尝试查找,但找不到任何东西。我只想要一个框架或画布与主窗口具有相同的大小,并且每当窗口扩展时,框架也会扩展。我尝试了不同的选择,但它们不起作用。我是否应该为下面的框架对象添加任何属性,使其与根窗口具有相同的大小?请帮忙!

from tkinter import *

root = Tk()

fr = Frame(root, bg = "red")
fr.pack()

root.mainloop() 
Run Code Online (Sandbox Code Playgroud)

window tkinter frame python-3.x

-1
推荐指数
1
解决办法
2379
查看次数

将txt文件信息插入docx

我正在使用 python 3.5、python-docx 和 TKinter。有没有办法能够在输入框中输入 .txt 文件名,并让 python 将该 .txt 文件的内容插入到 docx 中的特定位置?我知道如何从 tkinter 中的输入框获取信息以及如何将它们转换为字符串。

我希望能够在输入框中输入某人的姓名(这也是文本文件的名称),并让 python 插入 .txt 文件的内容。

谢谢

这里更新是我正在尝试的代码

from tkinter import *
from tkinter import ttk
import tkinter as tk
from docx import Document
root=Tk()

def make_document():
    testbox=ProjectEngineerEntry.get()
    TestBox=str(testbox)

    def projectengineer():
        with open(+TestBox+'.txt') as f:
            for line in f:
                document.add_paragraph(line)
    document=Document()

    h1=document.add_heading('engineer test',level=1)
    h1a=document.add_heading('Project Engineer',level=2)
    projectengineer()

    document.save('test.docx')

notebook=ttk.Notebook()
notebook.pack(fill=BOTH)
frame1=ttk.Frame(notebook)
notebook.add(frame1,text='Tester',sticky=W)
tester1=Label(frame1,text='Test1')
ProjectEngineerEntry=Entry(frame1)
tester1.pack()
ProjectEngineerEntry.pack()
save=Button(frame1,text='Save',command=make_document).pack()
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我试图从输入框中获取信息,将其转换为字符串,然后使用该字符串打开具有该特定名称的文本文件。然而我不断得到

TypeError:一元 + 的操作数类型错误:'str'

我不明白这是怎么回事。在实际文档中,我在保存文件时使用了 ++ 方法(将其另存为当前日期和时间)。

python tkinter python-docx python-3.5

-1
推荐指数
1
解决办法
2792
查看次数

如何更改 tkinter 小部件的边框颜色?

我一直在尝试在 Tkinter 中配置小部件的边框颜色,我想知道如何做到这一点......

我检查过 StackOverflow,它说我应该使用该configure选项,然后设置highlightbackgroundcolor = {insert color here}。我已经尝试过了,但没有任何效果。有人可以给我看一个工作代码示例,以便我能弄清楚吗?

python tkinter widget ttk

-1
推荐指数
1
解决办法
2952
查看次数

ValueError: 必须指定标题或 pageid

我一直在用 Python 3.8 编写代码来帮助我研究东西,我想把它变成一个 GUI。当我这样做时,每当我点击“开始”按钮时都会收到此错误。如果你们中的任何人看到错误,这里是代码。

# Imports
import wikipedia
from tkinter import *
import time

# Code
def Application():
    # Definitions
    def Research():
        # Defines Entry
        Result = wikipedia.summary(Term)

        print(Result)

    # Window Specifications
    root = Tk()
    root.geometry('900x700')
    root.title('Wikipedia Research')

    # Window Contents
    Title = Label(root, text = 'Wikipedia Research Tool', font = ('Arial', 25)).place(y = 10, x = 250)

    Directions = Label(root, text = 'Enter a Term Below', font = ('Arial, 15')).place(y = 210, x = 345)

    Term = Entry(root, …
Run Code Online (Sandbox Code Playgroud)

python tkinter wikipedia-api

-1
推荐指数
1
解决办法
49
查看次数

我们如何使用网格在 tkinter 中获得这样的布局?

我想要一个像这样的布局,使用网格方法,其中顶部有 2 个小部件,可以正确填充而不会重叠,底部有 3 个小部件。

我尝试使用 columnspan 属性,但它是重叠的。

布局

python tkinter python-3.x tkinter-layout

-1
推荐指数
1
解决办法
75
查看次数