在我的程序中,我只需要通知用户不要在没有键盘或鼠标的系统上按下物理按钮,想要弹出等待消息,当系统再次准备好时消失
class input_data(Tkinter.Tk):
def __init__(self):
Tkinter.Tk.__init__(self);
self.resizable(width=False,height=False);
self.geometry('500x500');
t = ['frame','input_text'];
for i in t:
eval('self.'+i+'()');
def frame(self):
self.f = Tkinter.Frame(self,width=200,height=200,bg='cyan');
self.f.grid(row=0,column=0);
def input_text(self):
self.e = Tkinter.Entry(self.f);
self.e.grid(row=0,column=0);
root = input_data();
root.mainloop();
Run Code Online (Sandbox Code Playgroud)
代码看起来不错,但框架不适合指示的dedida,但如果你这样做,请在下面的代码中
import Tkinter as tk
class SimpleApp(object):
def __init__(self, master, **kwargs):
title = kwargs.pop('title')
frame = tk.Frame(master, borderwidth=5, bg = 'cyan', **kwargs)
frame.grid()
button = tk.Button(frame, text = title)
button.grid(sticky = tk.SE)
frame.rowconfigure('all', minsize = 200)
frame.columnconfigure('all', minsize = 200)
def basic():
root = tk.Tk()
app = SimpleApp(root, title …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用类似 OptionMenu 的列表选择器,但我想要嵌套选项。我希望它们像嵌套菜单一样(文件-> 保存),但我需要对其进行网格化。
如果这是不可能的(缺少编写自定义小部件),我最终将有两个选择器,第一个选择“主菜单”,第二个处理“子菜单”,但我真的很想避免这样做。
是否可以在 Tkinter-Python 中改进我的进度条,在中间添加一个标签(例如:读取文件)?
我试图找到一个优雅的编码解决方案,但没有真正的结果
from Tkinter import *
import ttk
import tkFileDialog
import time
class MainWindow(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title("ProgressBar example")
self.master.minsize(200, 100)
self.grid(sticky=E+W+N+S)
top = self.winfo_toplevel()
top.rowconfigure(0, weight=1)
top.columnconfigure(0, weight=1)
self.start_ind = Button(self, text='Start indeterminate', command=self.start_ind, activeforeground="red")
self.start_ind.grid(row=0, column=0, pady=2, padx=2, sticky=E+W+N+S)
self.pbar_ind = ttk.Progressbar(self, orient="horizontal", length=300, mode="indeterminate")
self.pbar_ind.grid(row=1, column=0, pady=2, padx=2, sticky=E+W+N+S)
def start_ind(self):
for i in xrange(50):
self.pbar_ind.step(1)
self.update()
# Busy-wait
time.sleep(0.1)
if __name__=="__main__":
d = MainWindow()
d.mainloop()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 TKinter 制作一个表单,该表单从一个/多个条目小部件获取信息并将它们用作文本小部件的值。例如,这可以工作:
import Tkinter
from Tkinter import *
top = Tk()
e1 = Entry(top)
e2 = Entry(top)
t = Label(top, text = e1.get() + e2.get())
e1.pack()
e2.pack()
t.pack()
top.mainloop()
Run Code Online (Sandbox Code Playgroud)
问题是这不会自动更新。我知道可以使用按钮来完成,但我希望在用户输入 Entry 小部件时在 Label 小部件中计算/更新信息。最好的做法是什么?当程序进入 top.mainloop() 并且不退出时,while 循环的以下实现不起作用:
import Tkinter
from Tkinter import *
top = Tk()
e1 = Entry(top)
e2 = Entry(top)
t = Label(top, text = e1.get() + e2.get())
e1.pack()
e2.pack()
while True:
t = Label(top, text = e1.get() + e2.get())
t.pack()
top.mainloop()
Run Code Online (Sandbox Code Playgroud)
先感谢您。六
我第一次在 python 中工作,基本上我试图让这些标签在正确的列和正确的行中对齐,但由于某种原因它不会向下移动行,列也不正确。任何帮助将非常感激!
代码:
from tkinter import *
import sys
#Setup GUI
#Create main window
main = Tk();
#Create title of main window
main.title = "Waterizer 1.0";
#Create default size of main window
main.geometry("1024x768");
#Lets get a fram to stick the data in we plan on using
mainApp = Frame(main);
#Snap to grid
mainApp.grid();
#Font for main labels
labelFont = ('times', 20, 'bold');
#Label for the Power
powerLabel = Label(mainApp, text="Power Status");
powerLabel.config(fg="Red", bd="1");
powerLabel.config(font=labelFont);
powerLabel.grid( row=0,column=20,columnspan=4, sticky = W); …Run Code Online (Sandbox Code Playgroud) 如果您需要更多详细信息,我很乐意提供,但让我只提供场景。
我这样做是为了在我的文本中插入 HTML 换行符:
count = int(text_entry.index('end-1c').split('.')[0])
for i in range(count):
if i != 0.0:
text_entry.insert('%d.end' % i, '<br>')
Run Code Online (Sandbox Code Playgroud)
简而言之,我只想在我的函数的其余部分执行后撤消此操作,将文本返回到其原始状态。我尝试使用text.delete()and text.replace(),但我似乎无法简单地删除插入的字符串而不改变文本的其余部分。我是 Tkinter 的新手,所以我确定我不了解索引的使用或一些基本的东西。
我感谢您的时间和关注。
在下面的代码中,单击按钮应该将黑色文本从 Hello 更改为 Goodbye。但是当我运行程序时,它立即说再见。

from Tkinter import *
from tkMessageBox import *
print "this is a test"
class Demo(Frame):
def __init__(self):
self.createGUI()
print "init"
#self.__mainWindow = Tk()
def destroy(self):
print "destroy"
def createGUI(self):
Frame.__init__(self)
self.pack(expand = YES, fill = BOTH)
self.master.title("Demo")
self.trackLabel = StringVar()
self.trackLabel.set("Hello")
self.trackDisplay = Label(self, font = "Courier 14", textvariable = self.trackLabel, bg = "black", fg = "green")
self.trackDisplay.grid(sticky = W+E+N+S)
self.button1 = Button(self, text = "Click Me", width = 10, command = self.bpress())
self.button1.grid(row = 2, …Run Code Online (Sandbox Code Playgroud) 所以我正在 tkinter (Python) 中开发一个程序,我正在制作一个计算器应用程序,类似于最初为类项目提供的 Windows 应用程序。像 windows 计算器一样,我希望阻止我的计算器能够改变其尺寸并尽可能阻止“全屏”按钮。有什么方法可以将其尺寸锁定到 .geometry() 函数提供的尺寸,或者至少阻止窗口顶部的“全屏”按钮?
我想创建 tkinter 网格布局 5 帧。在替换 Frame 内容之前,它看起来是我想要的样子。
self.Frame1 = tk.Frame(self.parent, bg="grey")
Run Code Online (Sandbox Code Playgroud)
和
self.Frame1 = LeftUpperWindow(self.parent)
Run Code Online (Sandbox Code Playgroud)
当我最大化窗口时,我看到 LeftUpperWindow 框架中的所有内容都乱七八糟,布局不正确。一张图值一千字 所以我有这个
并且想要这个
import sys
import os
import Tkinter as tk
import ttk as ttk
class LeftUpperWindow(tk.Frame):
def __init__(self, master=None):
self.parent = master
tk.Frame.__init__(self, self.parent, bg='#ffffff', borderwidth=1, relief="sunken")
self.__create_layout()
def __create_layout(self):
self.parent.grid()
for r in range(3):
self.parent.rowconfigure(r, weight=1)
for c in range(2):
self.parent.columnconfigure(c, weight=1)
self.editArea = tk.Text(self.parent, wrap=tk.NONE, undo=True,
relief=tk.SUNKEN, borderwidth=5, highlightthickness=0, insertbackground="white")
self.editArea.config(font=('courier', 10, 'normal'))
self.editArea.configure(bg="black", fg="white")
self.editArea.grid(row=0, column=0, sticky=(tk.N, tk.S, tk.W, …Run Code Online (Sandbox Code Playgroud) tkinter ×10
python ×9
grid ×2
frame ×1
nested ×1
optionmenu ×1
progress-bar ×1
python-3.x ×1
rows ×1
textbox ×1
tk-toolkit ×1
widget ×1