Найти - Пользователи
Полная версия: Установка всплывающего окна по центру программы
Начало » GUI » Установка всплывающего окна по центру программы
1 2
4kpt_III
victoreva
А чем вам place не нравится?

Изменение размеров виджета подчас приводит к интересным результатам. Плюс много вещей реализовать нельзя и нужно очень много самому высчитывать при укрупнении интерфейса.
4kpt_III
victoreva
Программа ошибок не выдает, но и ничего не происходит. Не скажите в чем причина?

Пишите подробнее. Я мысли читать пока не научился. Тем более, если приводите только кусок кода.

Что значит не происходит? Окно не появляется? Кнопки не нажимаются?
victoreva
Кнопки нажимаются, окно появляется. Но не выполняются сами батники - ни в текстовое поле ничего не выводит и не создает текстовый файл.
4kpt_III
После изменений кода,

def func1(a1):
   print(a1)
   cmd='bat\Helpful information\'+ a1 + '.bat'
   proba=subprocess.check_output(cmd, stderr=subprocess.STDOUT)
   send_text(proba)
def func1(a2):
   print(a2)	
   cmd='bat\Helpful information\' + a2 + '.bat'
   proba=subprocess.check_output(cmd, stderr=subprocess.STDOUT)
   send_text(proba)

что отображается на экране в командной строке?
victoreva
ничего..
4kpt_III
def dialog(batnik1,batnik2):
  print("bat_files:", batnik1, batnik2)
  win = Toplevel(root,width=400,height=100 )
 
  but1 = Button(win, text="Поле программы",width=30,height=5, bg="white",fg="black")	
  but1.bind("<Button-1>",lambda event:func1(batnik1)) 
  but1.place(relx=0.05,rely=0.55,relwidth=0.3,relheight=0.3) 
  but2 = Button(win, text="Текстовый файл",width=30,height=5, bg="white",fg="black") 
  but2.bind("<Button-1>",lambda event:func2(batnik2))
  but2.place(relx=0.4,rely=0.55,relwidth=0.3,relheight=0.3)	
  but3 = Button(win, text="Отмена",width=30,height=5, bg="white",fg="black") 
  but3.bind("<Button-1>", lambda event: win.destroy())
  but3.place(relx=0.75,rely=0.55,relwidth=0.2,relheight=0.3)

А теперь?
victoreva
Пардон, запускал еще не редактируемый файл. Теперь выдает ошибку:
cmd='bat\Helpful information\'+ a1
^
SyntaxError: EOL while scanning string literal
4kpt_III
Вам бы основы почитать…

cmd='bat\Helpful information\'+ a1

В этом тексте \ - специальный символ и интерпретатор читает его специфически. Например “\n” переход на следующую строку, “\t” табуляция и т.п.

Проблема решается несколькими способами:
1. Используется модуль os и его метод path.join() (самый правильный способ, так как не зависит от ОС).
2. Используются raw строки. Для этого перед строкой ставится буква r.
3. Делаем двойное экранирование по-типу cmd='bat\\Helpful information\\'+ a1.
4. Переходим на нормальную ОС и удаляем винду Там такие проблемы невозможны.
victoreva
Спасибо, как всегда выручили!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB