Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 6, 2014 17:32:18

jony_77
Зарегистрирован: 2014-02-04
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter виджет Frame

Возможно видео нет из-за ‘-vo vaapi’. можно просто убрать

Офлайн

#2 Окт. 9, 2014 14:29:33

jony_77
Зарегистрирован: 2014-02-04
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter виджет Frame

Ну что? походу нет решения ?

Офлайн

#3 Окт. 9, 2014 18:02:58

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

tkinter виджет Frame

Продолбался час. Могу предложить только одно решение. 8 маленьких окошек по контуру. А большое в центре. Нажимаете на окошки - они становятся в центре. Что я только не пробовал

Офлайн

#4 Окт. 10, 2014 07:59:29

jony_77
Зарегистрирован: 2014-02-04
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter виджет Frame

Не то. Есть мысль сделать вместо frame, отдельными окошками toplevel. можно toplevel без бордюра (оформления) запускать?

Офлайн

#5 Окт. 10, 2014 11:14:10

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

tkinter виджет Frame

Можно, но оконный менеджер будет их игнорировать и у Вас будет туча ссылок в панели задач. Это 200% не то

Офлайн

#6 Окт. 13, 2014 15:11:42

jony_77
Зарегистрирован: 2014-02-04
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter виджет Frame

Вот… держи изоленту… (из старого анекдота)

#!/usr/bin/python3.4
# -*- coding: utf-8 -*-
import tkinter as tk
import subprocess
num = 5
myfile = '/home/jon/1.MTS'
cmdline='mplayer -vo vaapi -cache 1024 -fps 30 -wid %s %s'
posx = [1, 481, 961, 1441, 1, 481, 961, 1441, 1, 481, 961, 1441, 1, 481, 961, 1441]
posy = [1, 1, 1, 1, 271, 271, 271, 271, 541, 541, 541, 541, 811, 811, 811, 811]
sx = 479
sy = 269
class WinFrame(tk.Toplevel):
  def __init__(self):
    tk.Toplevel.__init__(self, root)
    self.x, self.y  = str(posx[i]), str(posy[i])
    self.overrideredirect(self)
    self.geometry(str(sx)+"x"+str(sy)+"+"+self.x+"+"+self.y)
    self.cmdline_win=cmdline%(self.winfo_id(), myfile)
    self.player=subprocess.Popen(self.cmdline_win.split())
    self.bind('<Button-1>', self.on_fullscreen)
  def on_fullscreen(self, event):
    if self.winfo_width()==sx:
        self.tkraise()
        self.withdraw()
        self.deiconify()
        self.geometry("1600x900+100+50")
    else:
        self.geometry(str(sx)+"x"+str(sy)+"+"+self.x+"+"+self.y)
if __name__ == '__main__':
  root = tk.Tk()
  root.config(bg='blue')
  root.attributes("-fullscreen", True)
  for i in range(num):
    WinCam = WinFrame()
  
root.mainloop()

только не понятен один момент, нужно сделать именно так
self.withdraw()
self.deiconify()
без этого окно выходит на передний план со второго раза. хотя пофиг, главное работает

Отредактировано jony_77 (Окт. 13, 2014 15:13:38)

Офлайн

#7 Окт. 13, 2014 16:31:32

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

tkinter виджет Frame

Жуткая костылятинка

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version