Python tkinter не может печатать в одной строке? - PullRequest
0 голосов
/ 26 мая 2020

Итак, в настоящее время я пишу программу с использованием python Tkinter, где я ввожу данные, и каждая задача будет вводиться в одной строке. Я оставил фото того, что я сделал внизу. Я хотел бы, чтобы все они были распечатаны в одной строке.

Click to see my output so far

Я хотел бы, чтобы и двойки, и три кнопки были в одной строке.

Вот мой код

# This Python file uses the following encoding: utf-8
import os, sys
import tkinter as tk
from tkinter import *
from tkinter import ttk
import tkinter.font
import tkinter.messagebox

#Set up window
root = tk.Tk()
root.title("SNKRS Bot")
root.geometry("1000x600")

#Enter ID
IDHead = Label(root, text="ID:")
IDHead.grid(row=1, column=0)
IDInput = Entry(root, textvariable="", width='5')
IDInput.grid(row=1, column=1)

#Enter link
linkHead = Label(root, text="Link:")
linkHead.grid(row=2, column=0)
linkInput = Entry(root, textvariable="", width='60')
linkInput.grid(row=2, column=1)

ID = []
linkList = []

def createTask():

    #Create variables for inputs
    linkInput1 = linkInput.get()
    IDInput1 = IDInput.get()

    #Append to lists
    linkList.append(linkInput1)
    ID.append(IDInput1)

    #print lists to check
    print("ID: " + str(ID))
    print("Links: " + str(linkList))

    #Clear inputs
    IDInput.delete(0, END)
    linkInput.delete(0, END)

    #Output values
    # Label(root, text=(IDInput1 + " | " + linkInput1)).grid(column=0)
    Label(root, text=linkInput1).grid(column=0)
    Label(root, text=linkInput1).grid(column=1)

    #Actions for each task
    def startTask():
        print("Task started")
    def stopTask():
        print("Task stopped")
    def deleteTask():
        print("Task deleted")

    #Buttons for actions
    startButton = tk.Button(root, text="start", command=startTask).grid(column=2)
    stopButton = tk.Button(root, text="stop", command=stopTask).grid(column=3)
    deleteButton = tk.Button(root, text="delete", command=deleteTask).grid(column=4)

#Create task
create = tk.Button(root, text="Create task", command=createTask)
create.grid(row=3, column=1)

root.mainloop()

1 Ответ

1 голос
/ 26 мая 2020

Всякий раз, когда вы упаковываете метку, в методе сетки вы передаете только столбец. Таким образом, он упаковывает виджет в новую строку. Чтобы избежать этого, передайте аргументы строки и столбца.

Пример: Label (root, text = "some text"). Grid (row = 3, column = 0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...