我在Python Mega Widgets和Tkinter中创建了一个接口,它是SQlite3数据库的接口。查询结果将作为列表返回,并显示在显示屏主框架上的备注字段中。
我是否可以创建一个小功能,该功能将从一个按钮启动,该按钮将从默认打印机打印备注字段的内容?
类似于:
command = printMemo #argument within the print button
#the print function I am looking for in pseudocode
def printMemo(memo):
print memo
这取决于您使用的是windows、linux还是mac/unix。答案将根据运行此python脚本的系统而相应地改变。
窗口
要将打印作业发送到windows上的打印机,您将使用
win32print
http://timgolden.me.uk/python/win32_how_do_i/print.htmlLINUX/UNIX/MAC系统
对于linux/unix/mac系统,您可以使用
pkipplib
库并利用CUPS(http://en.wikipedia.org/wiki/CUPS)运行CUPS的计算机是一个主机,它可以接受来自客户端计算机的打印作业,处理它们,并将它们发送到适当的打印机。 有关基于杯子的打印,请参见http://www.pykota.com/software/pkipplib。pkipplib
是可以通过PyPi安装的第三方库。如果您熟悉pip
的用法,您只需运行并且
pkipplib
python模块将可供您导入到脚本中。然后,您可以在连接到linux/unix/mac CUPS打印机之后执行打印,类似于上面链接中的示例。像这样:好问题。希望我的回答会有帮助。
注意:我使用Python3.3,所以我们需要导入tkinter和tkinter。。。
在下面的过程代码行中,需要用
= StringVar()
将文本变量定义为字符串变量(这里是text1
)。然后,当您创建entry小部件(这里是它的
text_entry
)时,您指示当用户按下按钮(.., textvariable = text1)
时,哪个变量接受输入的值。然后使用
command =
函数创建一个按钮小部件(这里是print_text(*args))
,它将打印用户键入的内容。因为text1是一个列表(或者可能是元组,不确定),所以需要使用属性的
.get
方法来获取输入的值。这里是print(text1.get())
我还补充了一些内容:
text_entry.focus()
在运行程序时将光标放在该小部件中,这样用户就不必在条目空间中单击,root.bind('<Return>', print_text)
允许用户点击回车进行打印。最简单的方法是创建一个文本文件,然后使用OS print命令(例如lpr on*nix)。如果需要,您可以合并标记(groff或latex),也可以创建postscript或PDF文件,但这需要做更多的工作!
这还有一个额外的优点,即print命令可以配置(环境或配置文件),因此可以在多个操作系统上工作。
相关问题 更多 >
编程相关推荐