标签: tkinter-layout

Tkinter按钮使用网格扩展

我刚接触编码,只是学习Python.我搜索了答案但找不到答案.

我正在尝试制作一个用于学习目的的计算器,但我无法进行底部keyboard frame扩展,或者buttons内部扩展以匹配根窗口的边界

这是我的代码:

from tkinter import  *

# main window configuration
root=Tk()
root.geometry("1000x1000")

root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0, weight=1)
# main window frames

topmenu=Frame(root,padx=5,pady=5)
display=Frame(root,padx=5,pady=5)
keyboard=Frame(root,padx=5,pady=5,bg="red")

topmenu.grid(row=0,column=0)
display.grid(row=1,column=0)
keyboard.grid(row=2,column=0)




# topmenu widgets

# display widgets

#keyboard widgets
 #  prima riga
percentagebutton=Button(keyboard,padx=5,pady=5,text="%")
squarerootbutton=Button(keyboard,padx=5,pady=5,text="?x")
squarebutton=Button(keyboard,padx=5,pady=5,text="x²")
inversebutton=Button(keyboard,padx=5,pady=5,text="1/x")

percentagebutton.grid(row=0,column=0,sticky='EWNS')
squarerootbutton.grid(row=0,column=1,sticky='EWNS')
squarebutton.grid(row=0,column=2,sticky='EWNS')
inversebutton.grid(row=0,column=3,sticky='EWNS')

#   seconda riga
resetbutton=Button(keyboard,padx=5,pady=5,text="C")
deletebutton=Button(keyboard,padx=5,pady=5,text="?")
divisionbutton=Button(keyboard,padx=5,pady=5,text="÷")


resetbutton.grid(row=1,column=0,columnspan=2,sticky='EWNS')
deletebutton.grid(row=1,column=2,sticky='EWNS')
divisionbutton.grid(row=1,column=3,sticky='EWNS')


#   terza riga

sevenbutton=Button(keyboard,padx=5,pady=5,text="7")
eightbutton=Button(keyboard,padx=5,pady=5,text="8")
ninebutton=Button(keyboard,padx=5,pady=5,text="9")
moltiplicationbutton=Button(keyboard,padx=5,pady=5,text="X")

sevenbutton.grid(row=2,column=0,sticky='EWNS')
eightbutton.grid(row=2,column=1,sticky='EWNS')
ninebutton.grid(row=2,column=2,sticky='EWNS')
moltiplicationbutton.grid(row=2,column=3,sticky='EWNS')
#   quarta riga
fourbutton=Button(keyboard,padx=5,pady=5,text="4")
fivebutton=Button(keyboard,padx=5,pady=5,text="5")
sixbutton=Button(keyboard,padx=5,pady=5,text="6")
minusbutton=Button(keyboard,padx=5,pady=5,text="-")

fourbutton.grid(row=3,column=0,sticky='EWNS')
fivebutton.grid(row=3,column=1,sticky='EWNS') …
Run Code Online (Sandbox Code Playgroud)

python tkinter tkinter-layout

6
推荐指数
1
解决办法
706
查看次数

使 Tkinter 多个窗口在任务栏中有一个图标

我使用了 Tkinter ,有几个顶级,它们在 Ubuntu 任务栏中单独显示,而不是像打开多个 Firefox 窗口那样一起出现(我的意思是它们都在 Firefox 图标下组合在一起,可以从中选择所需的)。所有 tkinter 窗口都单独出现在任务栏中,因此占用了任务栏中的大量空间。有没有办法将它们分组在一起,以便很容易看到当前打开了多少个窗口,并清楚地看到它们是其中的一部分一个程序

python taskbar tkinter tkinter-layout

5
推荐指数
1
解决办法
790
查看次数

如何更改通过箭头键突出显示哪个tkinter按钮?

我正在使用python中的tkinter库来开发键盘应用程序。我做了一个键盘。我要突出显示一个键,然后单击箭头键,然后更改该突出显示的键。这是我的键盘代码。

from tkinter import *
import tkinter

Keyboard_App = tkinter.Tk()

def select(value):
    if value == "<-":
        input = entry.get("1.0", 'end-2c')
        entry.delete("1.0", END)
        entry.insert("1.0", input, END)

    elif value == " Space ":
        entry.insert(tkinter.END, ' ')

    elif value == "Tab":
        entry.insert(tkinter.END, '   ')

    else:
        entry.insert(tkinter.END, value)

buttons = [
    '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '=',
    'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '<-',
    'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', '"', …
Run Code Online (Sandbox Code Playgroud)

python tkinter tkinter-layout

5
推荐指数
1
解决办法
736
查看次数

如何从 tkinter 笔记本触发选项卡更改功能?

有谁知道在 tkinter 笔记本中选择不同选项卡后如何触发功能?

这就是我要完成的任务。

假设我有两个选项卡,tab1 和 tab2:

if tab1 is selected:
    canvas3.unbind_all() 
    canvas2.bind_all('<MouseWheel>', lambda event: canvas2.yview_scroll(int(-1 * (event.delta / 120)),"units"))

elif tab 2 is selected:
    canvas2.unbind_all()
    canvas3.bind_all('<MouseWheel>', lambda event: canvas3.yview_scroll(int(-1 * (event.delta / 120)), "units"))
Run Code Online (Sandbox Code Playgroud)

python tkinter python-3.x tkinter-layout

5
推荐指数
1
解决办法
3463
查看次数

在单击按钮之前执行 Tkinter 按钮命令

我创建了一个框架,因为我有两个浏览按钮,我想浏览两个以“.txt”扩展名结尾的文件并将其打印在屏幕上。

在我的场景中,浏览功能在按下框架上的按钮之前被调用。我期待它应该在我按下按钮时调用。附上完整代码。请有人纠正我我做错了什么。

from Tkinter import *
import tkFileDialog as filedialog

global filename

root = Tk()

def browsefunc(entry):
    entry = filedialog.askopenfilename(filetypes=[("Text files","*.txt")])
    print entry


browsebutton1 = Button(root, text="Browsefile1", command=browsefunc("TXT_file1"))
browsebutton1.pack()

browsebutton2 = Button(root, text="Browsefile2", command=browsefunc("TXT_file2"))
browsebutton2.pack()


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

python tkinter python-2.7 tkinter-layout

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

如何使 tkinter 框架填充整个画布并随之扩展?

我想制作一个可滚动框架,填充应用程序窗口中的整个单元格。当调整窗口大小时,框架中的小部件应保持居中。由于框架不可滚动,我使用画布并在其窗口中放置了一个框架。滚动区域与框架相关联。但是我无法使框架扩展并填充整个画布区域。

我尝试在画布中为具有整个画布宽度的框架创建一个窗口,并将窗口宽度的变化与画布配置事件相关联。不过我得到了有线结果。该框架仅占据窗口的右侧部分。当我展开窗口时,它会向左移动。我将画布涂成黄色,将框架涂成绿色,以使事物可见。谢谢你的帮助!

import tkinter as tk


class FrameWithScrollBar(tk.Frame):

    def __init__(self, parent, *args, **kwargs):
        super().__init__(parent, *args, **kwargs)
        self.canvas = tk.Canvas(self, bg='yellow')
        self.frame = tk.Frame(self.canvas, bg='green')
        self.scrollbar = tk.Scrollbar(self, orient='vertical',
                                command=self.canvas.yview)
        self.canvas.configure(yscrollcommand=self.scrollbar.set)
        self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
        self.scrollbar.pack(side=tk.RIGHT, fill=tk.BOTH)
        self.frame.pack(fill=tk.BOTH, expand=True)
        self._frame_id = self.canvas.create_window(
                                 self.canvas.winfo_reqwidth(), 0,
                                 anchor='n',
                                 window=self.frame)
        self.frame.bind('<Configure>', self.onFrameConfigure)
        self.canvas.bind('<Configure>', self.onCanvasConfigure)

    def onFrameConfigure(self, event):       
        self.canvas.configure(scrollregion=self.frame.bbox('all'))

    def onCanvasConfigure(self, event):
        width = event.width
        self.canvas.itemconfigure(self._frame_id, width=width)


if __name__ == '__main__':

    root = tk.Tk()
    fws = FrameWithScrollBar(root)
    buttons = list()
    for i in range(5):
        for j in …
Run Code Online (Sandbox Code Playgroud)

python tkinter tkinter-canvas tkinter-layout

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

Tkinter 按钮背景颜色在 mac os 中不起作用

我正在尝试更改mac(catalina)上tkinter 按钮的背景颜色,但它没有获得彩色背景,而是在布局中显示空白。

我使用的按钮代码:

button_open = Button(root, width=45, bg="#82CC6C", fg="black", text="OPEN",
                     highlightbackground="#82CC6C", highlightthickness=1,
                     borderwidth=0.2, relief="groove", padx=0, pady=0)
    
button_open.grid()
Run Code Online (Sandbox Code Playgroud)

我得到的结果:

错误按钮

我所期望的:

预期结果

我尝试更改所有参数,但总是给出相同的结果,

我们该如何解决这个问题?这只是 mac 上 tkinter 的错误吗?

python macos tkinter tkinter-layout tkinter-button

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

Tkinter“放置”几何管理器不起作用

我一直在从一本电子书中学习 Python。现在我正在学习这个Tkinter模块

这本书建议运行以下代码。但是,它不能正常工作。任何想法为什么?

from Tkinter import *

window = Tk()
window.geometry("200x200")

my_frame = Frame()
my_frame.pack

button1 = Button(my_frame, text = "I am at (100x150)")
button1.place(x=100, y=150)

button2 = Button(my_frame, text = "I am at (0 x 0)")
button2.place(x=0, y=0, width=100, height=50)

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

我应该得到什么:

理想的结果

我得到的:

实际结果

添加button1.pack()and 后button2.pack(),我得到了这个:

不同几何管理器的结果

python tkinter tkinter-layout

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

如何在 tkinter 中对齐标签、条目

我真的很沮丧,试图在 tkinter 中对齐标签和输入按钮。我想创建一个如下所示的 GUI

在此输入图像描述

上面的页面是使用页面工具开发的。我编写了一段代码来获取相同类型的页面,但它有很多错位。

from Tkinter import *
root = Tk()
root.title("Nokia Performance")
root.geometry("583x591+468+158")
root.title("NOKIA _ANSI Performance")
root.configure(borderwidth="1")
root.configure(relief="sunken")
root.configure(background="#dbd8d7")
root.configure(cursor="arrow")
root.configure(highlightbackground="#d9d9d9")
root.configure(highlightcolor="black")


Label1 = Label(root)
_img1 = PhotoImage(file="C:\\Users\\vkandhav\\Desktop\\PY_IMAGE\\NOKIA.gif")
Label1.configure(image=_img1)
Label1.configure(text='''Label''')
Label1.pack()

Label2 = Label(root)
Label2.configure(text='''Enter the platform :''')
Label2.pack(side=LEFT)

Entry2 = Entry(root)
Entry2.pack(side = RIGHT)

Label3 = Label(root)
Label3.configure(text='''Device  IP Address :''')
Label3.pack()

Entry5 = Entry(root)
Entry5.pack()

Label5 = Label(root)
Label5.configure(text='''Username :''')
Label5.pack()

Label6 = Label(root)
Label6.configure(text='''Label''')
Label6.pack()

Label7 = Label(root)
Label7.configure(text='''Craft IP :''')
Label7.pack()

Label8 = Label(root) …
Run Code Online (Sandbox Code Playgroud)

python tkinter tkinter-entry tkinter-layout

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

调整 tkinter Label 中的文本以占据所有可用空间

嘿,我希望你们一切都好。我正在 python tkinter 中构建一个视力表软件,其中包含 Opto Charts。在光学图表中,所有字母都直接位于彼此下方。但是当我尝试在 tkinter 中添加标签时,它形成 V 形,因为每行字体大小都在减小。我想占据标签所有可用空间。

我设法使用它来做到这一点 mainFrame.rowconfigure(0, weight=1),但它只能使标签达到全宽,而不是其中的文本。我已附上屏幕截图以了解其外观。 在此输入图像描述 在屏幕截图中,您可以看到标签设置为屏幕的全长,但文本呈 V 形,因为字体大小从上到下减小。有没有办法将文本锚定为全宽。换句话说,每个字母表都应该直接位于上面的字母表之下。

我希望我已经说清楚了,如果您需要了解其他信息,请告诉我。

python tkinter python-3.x tkinter-layout tkinter-text

0
推荐指数
1
解决办法
950
查看次数

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

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

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

布局

python tkinter python-3.x tkinter-layout

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