2016-03-10 15 views
-1

我试图编写一个Python程序,它获取一个字符串作为输入,并在消息框中显示字符串,并从每个单词中删除最后一个字母。 我已经成功地编写了代码以删除每个单词的最后一个字母,并且我开始了解tkinter模块。 但是文本不能从tk消息框复制。 是否有任何其他方式显示具有可复制文本的消息框? 如果无法显示此类消息框,是否有任何方法可以在不显示消息框的情况下以可复制的形式显示输出? 附加(无用)信息:是否有一个消息框在Python 2.7中显示可复制文本?

  1. 这种语言的名称是fromonk(如果你想知道为什么变数名称fromonk_text)
  2. 表情应该显示在整体(包括最后一个字母).Hence if-else块。

我写的代码:

import tkMessageBox 
line="foo" 
while line!="exit": 
    fromonk_text="" 
    line=raw_input() 
    words=line.split() 
    for word in words: 
     if word.startswith(":"): 
      fromonk_text+=word+" " 
     else: 
      fromonk_text+=word[0:len(word)-1]+" " 
    tkMessageBox.showinfo("Fromonk",fromonk_text) 

回答

0

没有什么内置。您可以使用包含Text部件一个部件Toplevel和一些Button部件创建自己的弹出式对话框,或者您可以使用tkSimpleDialog

有些文档可以在这里找到:http://effbot.org/tkinterbook/tkinter-dialog-windows.htm

这里有一个简单的工作示例。它允许编辑文本,但如果需要,可以禁用该文本。

import Tkinter as tk 
import tkSimpleDialog 

class CustomDialog(tkSimpleDialog.Dialog): 

    def __init__(self, parent, title=None, text=None): 
     self.data = text 
     tkSimpleDialog.Dialog.__init__(self, parent, title=title) 

    def body(self, parent): 

     self.text = tk.Text(self, width=40, height=4) 
     self.text.pack(fill="both", expand=True) 

     self.text.insert("1.0", self.data) 

     return self.text 

def show_dialog(): 
    fromonk_text = "this is an example" 
    CustomDialog(root, title="Example", text=fromonk_text) 

root = tk.Tk() 
button = tk.Button(root, text="Click me", command=show_dialog) 
button.pack(padx=20, pady=20) 
root.mainloop() 

Example Window

+0

[对于Python 3名的用户(https://stackoverflow.com/a/673309/3357935),重命名下列进口:'Tkinter'→'tkinter','tkSimpleDialog'→ 'tkinter.simpledialog' –

相关问题