Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Вывод результата выполнения команд вызываемого bat-ника в Label [RSS Feed]

#1 Март 22, 2015 16:40:00

victoreva
Зарегистрирован: 2015-03-17
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод результата выполнения команд вызываемого bat-ника в Label

Всем доброго времени суток!
Хочу сделать gui для своих батников. Фрейм условно можно разделить на две части, в одной - кнопки(с привязкой к bat-файлам), в другой - label (тут должен отображаться результат выполнения команд в bat-файле). Так вот у меня стоит вопрос как правильно описать label. Может кто накидать код как это можно реализовать? Если это в принципе возможно конечно. В идеале нужно, чтоб результаты команд от вызова предыдущих bat-ников не затирались. Заранее спасибо.

Офлайн

#2 Март 22, 2015 17:26:18

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Вывод результата выполнения команд вызываемого bat-ника в Label

Какой тип GUI. Укажите.

Офлайн

#3 Март 22, 2015 17:33:12

victoreva
Зарегистрирован: 2015-03-17
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод результата выполнения команд вызываемого bat-ника в Label

Tkinter

Офлайн

#4 Март 22, 2015 18:32:23

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Вывод результата выполнения команд вызываемого bat-ника в Label

Вам не label нужен, а Text. В этом случае получается, что можно добавлять строки в конец текста. Делать между ними разграничительные линии и т.п.

Офлайн

#5 Март 22, 2015 18:41:17

victoreva
Зарегистрирован: 2015-03-17
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод результата выполнения команд вызываемого bat-ника в Label

Разве текстовое поле можно настроить так, чтобы у пользователя не было возможности редактирования?
Да и как бы основной вопрос все таки не в том, чтобы команды не затирала. А вообще чтоб выводился туда результат. А незатирание это просто как доп задача

Отредактировано victoreva (Март 22, 2015 19:05:38)

Офлайн

#6 Март 22, 2015 19:10:39

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Вывод результата выполнения команд вызываемого bat-ника в Label

Да. Можно сделать так, чтобы пользователь не мог редактировать. Для введения результата в текстовое поле необходимо использовать его метод insert(). После использования метода .insert() нужно сделать .update() тем самым внеся изменения в отображение.

Офлайн

#7 Март 22, 2015 19:15:08

victoreva
Зарегистрирован: 2015-03-17
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод результата выполнения команд вызываемого bat-ника в Label

Можете привести пример кода?
Например вначале, я щелкаю по кнопке button1 и запускается на выполнение файл bat1.bat, а потом я щелкаю по кнопке button2 и запускается файл bat2.bat. Нужно вывести результаты выполнения этих файлов в text1 без затирания и без возможности редактирования? Буду очень признателен

Отредактировано victoreva (Март 22, 2015 19:15:17)

Офлайн

#8 Март 22, 2015 20:04:45

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Вывод результата выполнения команд вызываемого bat-ника в Label

Давайте так. Вы пишете python-скрипт, который запускает файл bat1.bat и выводит его результат просто в консоль, а с остальным я уже помогу…

Офлайн

#9 Март 22, 2015 20:26:34

victoreva
Зарегистрирован: 2015-03-17
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод результата выполнения команд вызываемого bat-ника в Label

Да дело в том, что я не совсем понимаю даже как сделать вывод в консоль. Вот все что у меня есть:

from tkinter import *	
import re
import os
import subprocess
def window_deleted():		
       root.quit()
def about():
     win = Toplevel(root)
     lab = Label(win,text="Это просто программа-тест")
     lab.pack() 
def close_win():
     root.destroy()
def export(event):	
	cmd=('call bat1.bat')
	subprocess.check_call(cmd, shell=True)
def import(event):	
	cmd=('call bat2.bat')
	subprocess.check_call(cmd, shell=True)
root= Tk()		
m = Menu(root) 
root.config(menu=m) 
root.title(u'SecurytiUp')
root.protocol('WM_DELETE_WINDOW', window_deleted)
w, h = root.winfo_screenwidth() - 4, root.winfo_screenheight() - 4
root.geometry("{}x{}+0+0".format(w, h))  
root.attributes('-fullscreen', 1) 
frame1=Frame(root,width=100,heigh=100,bg='green',bd=5)
frame1.pack()
button1 = Button(frame1, text="Экспорт",width=30,height=5, bg="white",fg="blue")	
button1.bind("<Button-1>",export) 
button1.pack()
button2 = Button(frame1, text="Импорт",width=30,height=5, bg="white",fg="blue")
button2.bind("<Button-1>",import) 
button2.pack()
root.mainloop()	

Отредактировано victoreva (Март 22, 2015 20:26:55)

Офлайн

#10 Март 22, 2015 20:43:11

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Вывод результата выполнения команд вызываемого bat-ника в Label

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

P.S. После того, как Вы отобразите информацию на экране через инструкцию print я поясню как эти данные запихнуть в Text.

Офлайн

  • Начало
  • » GUI
  • » Вывод результата выполнения команд вызываемого bat-ника в Label[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version