如何从Python中的函数获取输入并在tkinter GUI中打印?

时间:2019-01-25 10:38:44

标签: python-3.x tkinter

library(shiny)


ui <- fluidPage (

sidebarLayout(
sidebarPanel(

actionButton("CommentaryButton","Enter Commentary")


),

mainPanel(
tabsetPanel(
tabPanel("Commentary",textOutput('CommentaryOutput'))

)
)
)
)

server <- function(input,output,session) {
observeEvent(input$CommentaryButton,
showModal(modalDialog(
textAreaInput("CommentaryInput",label = "Commentary", width= "550px", 
row= 10,placeholder = "Please enter commentary...."),



footer=tagList(actionButton("SaveCommentary","Save"),modalButton("Cancel")
)
)
)

)#observeEvent

observeEvent(input$SaveCommentary,{
output$CommentaryOutput <- renderText({paste(Input$CommentaryInput)})
removeModal()  
}
)
}


shinyApp(ui,server)

我写了一个返回文本的python代码。并在tkinter label.print中打印出来,而我尝试执行时在label中显示“ None”。

2 个答案:

答案 0 :(得分:0)

只需更改线路:

res = response(inputValue)

res = inputValue

为我工作,每次按下按钮时都会创建一个新标签。

答案 1 :(得分:0)

最好在全局命名空间中创建一次标签,然后在每次按下按钮时更新标签。

我还建议使用import tkinter as tkfrom tkinter import *,因为随着代码的增长,它提供了更好的可维护性,并且您最终不会覆盖内置方法。

我已经更新了您的代码,并更改了一些内容以更好地符合PEP8标准。

import tkinter as tk


def print_something():
    label.config(text=text_box.get("1.0", "end-1c"))

root = tk.Tk()
tk.Button(root, text="Print Me", command=print_something).pack()
text_box = tk.Text(root, height=2, width=10)
text_box.pack()

label = tk.Label(root)
label.pack()
root.mainloop()