我正在尝试在tkinter上创建页面到页面的系统,但是从右边开始的文本看起来有些奇怪,如果文本从标签的中心均匀分布,我会更喜欢它。
示例
This is some really cool text
<< Prev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >> Next
然后成为
. . . . . . . . . . . . .. This is some really cool text
<< Prev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >> Next
点之所以存在,是因为Stackoverflow不允许有多个空格,因此请忽略这些空格。它看起来应该像Microsoft Word的中心文字
这是我拥有的基本代码,我尝试使用anchor = CENTER
,但未按预期工作。抱歉,如果这是基础知识,我是Tkinter的新手
from tkinter import *
introText = ["Some say","That it is","very important","to clean","your hands","Yababababa doooooooo"]
currentPage = 1
def forceSize(main, width, height):
main.minsize(width, height)
main.maxsize(width, height)
def storyGUI(textList):
global currentPage
textListLength = len(textList)
def prevPage(main, textLabel):
global currentPage
if currentPage != 1:
textLabel.config(text = introText[currentPage-2])
main.title("Page "+str(currentPage-1))
currentPage -= 1
def nextPage(main, textLabel):
global currentPage
if currentPage != textListLength:
textLabel.config(text = introText[currentPage])
main.title("Page "+str(currentPage+1))
currentPage += 1
storyTK = Tk()
forceSize(storyTK, 400, 100)
storyTK.title("Page 1")
textLabel = Label(storyTK, text = introText[0], font = ("Calibri", 13), anchor = CENTER)
prevButton = Button(storyTK, text = "<< Prev", command = lambda: prevPage(storyTK, textLabel))
nextButton = Button(storyTK, text = "Next >>", command = lambda: nextPage(storyTK, textLabel))
textLabel.place(x = 160, y = 15)
prevButton.place(x = 30, y = 60)
nextButton.place(x = 310, y = 60)
storyTK.mainloop()
#def intro():
storyGUI(introText)
答案 0 :(得分:2)
tk标签的默认文本在标签内居中,因此这里的问题是标签本身未居中。
位置的原点是最左上角x = 0,y = 0。使用textLabel.place(relx=0.5, y=15, anchor='center')
将标签小部件置于主窗口的中心。 relx=0
是窗口的左边缘,relx=1.0
是窗口的右边缘,因此relx=0.5
是窗口的中心。 relx=0.5, y=15
表示在窗口中心距窗口顶部15像素处的一点。标签窗口小部件的左边缘位于该点,因此anchor='center'
表示您将标签窗口小部件置于该点的中心。