저는 사용자가 입력 한 해 동안 달력 (그레고리오)을 인쇄하는 Python (PyGTK)으로 작은 프로그램을 만들고 있습니다. 실제로 명령 cal -y %s | lpr % (text)
를 인쇄 할 때 작동하지 않습니다Python을 통해 달력 인쇄. 코드가 작동하지 않습니다 =/
#!/usr/bin/env python
import pygtk, gtk, subprocess
pygtk.require("2.0")
class Base:
def printing(self, widget):
text = self.textbox.get_text()
printingit = "cal -y %s | lpr" % (text)
process = subprocess.Popen(printingit.split(), stdout=subprocess.PIPE)
output = process.communicate()[0]
def __init__(self):
self.win = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.win.set_position(gtk.WIN_POS_CENTER)
self.win.set_size_request(350, 200)
self.win.set_resizable(False)
self.win.set_title("Calendar")
self.win.connect('destroy',lambda w: gtk.main_quit())
self.textbox = gtk.Entry()
self.textbox.set_size_request(70, 30)
self.lable = gtk.Label("Year:")
self.button = gtk.Button("Print")
self.button.set_size_request(60, 45)
self.button.connect("clicked", self.printing)
box = gtk.Fixed()
box.put(self.lable, 160, 25)
box.put(self.textbox, 140, 40)
box.put(self.button, 145, 100)
self.win.add(box)
self.win.show_all()
def main(self):
gtk.main()
if __name__ == "__main__":
base = Base()
base.main()
:
여기 내 코드입니다. 텍스트 상자의 텍스트를 가져와야하는 마지막 명령으로 바꿔서 내가 원하는대로 바꿉니다. cal -y 2015 | lpr
. 터미널에 넣으려고했는데 평소와 같이 잘 작동 했으니 많이 혼란 스러웠습니다!
나는 터미널에서 프로그램을 실행하고 인쇄 할 때이 내가받을 메시지입니다 :
Usage: cal [general options] [-hjy] [[month] year]
cal [general options] [-hj] [-m month] [year]
ncal [general options] [-bhJjpwySM] [-s country_code] [[month] year]
ncal [general options] [-bhJeoSM] [year]
General options: [-NC3] [-A months] [-B months]
For debug the highlighting: [-H yyyy-mm-dd] [-d yyyy-mm]
사람이 내가 매우 감사하게 될 것입니다 일어나고있는 이유를 이해하는 경우! 당신이 당신의 명령 쉘 구문 (파이프)를 사용하려면 = 사전에 D
- 해리
"작동하지 않는"어떤 맛? 오류 (전체 추적을 제공)? 예기치 못한 결과물 (입력물과 예상되는 결과물 및 실제 결과물 제공)? – jonrsharpe
내가 작동하지 않는다는 말은 내 기본 프린터에서 인쇄하지 않는 것입니다. 내가받은 모든 오류는 게시 된 것이고 출력은 냉동 된 프로그램과 터미널의 오류뿐입니다. 텍스트 필드에 2015를 입력하고 내가 게시 한 출력을 받았습니다. –
왜 절차 코드를 쓸모없는 클래스에 래핑합니까? 자바에 의한 감염인가? –