PDA

View Full Version : سوال: تغییر ساختار صفحه نمایش در stb



Glimpser
یک شنبه 02 بهمن 1390, 18:32 عصر
دوستانی که به پیتون تسلط دارند لطفا راهنمایی کنند
با این کدها یک تصویر روی صفحه نمایش ظاهر میشود که من میخواهم در دو طرف تصویر دو تصویر دیگر را هم اضافه کنم که حاوی نکاتی درخصوص تصویر وسطی است دوستانی که آشنایی دارند لطفا راهنمایی کنند چطوری میتوانم این کار را انجام دهم



# Adapted tutorial 2012 lesson 17
################################################## ################
from Screens.Screen import Screen
from Components.Label import Label
from Components.Pixmap import Pixmap
from Components.AVSwitch import AVSwitch
from Components.ActionMap import ActionMap
from enigma import ePicLoad
from twisted.web.client import downloadPage
from Screens.MessageBox import MessageBox
from Plugins.Plugin import PluginDescriptor

################################################## #########################
class PictureScreen(Screen):

skin="""
<screen name="PictureScreen" position="0,0" size="1280,720" title="Picture Screen" backgroundColor="#002C2C39">
<widget name="myPic" position="0,0" size="1280,720" zPosition="1" alphatest="on" />
</screen>"""

def __init__(self, session, picPath = None):
Screen.__init__(self, session)
print "[PictureScreen] __init__\n"
self.picPath = picPath
self.Scale = AVSwitch().getFramebufferScale()
self.PicLoad = ePicLoad()
self["myPic"] = Pixmap()
self["myActionMap"] = ActionMap(["SetupActions"],
{
"ok": self.cancel,
"cancel": self.cancel
}, -1)

self.PicLoad.PictureData.get().append(self.DecodeP icture)
self.onLayoutFinish.append(self.ShowPicture)

def ShowPicture(self):
if self.picPath is not None:
self.PicLoad.setPara([
self["myPic"].instance.size().width(),
self["myPic"].instance.size().height(),
self.Scale[0],
self.Scale[1],
0,
1,
"#002C2C39"])

self.PicLoad.startDecode(self.picPath)

def DecodePicture(self, PicInfo = ""):
if self.picPath is not None:
ptr = self.PicLoad.getData()
self["myPic"].instance.setPixmap(ptr)


def cancel(self):
print "[PictureScreen] - cancel\n"
self.close(None)


class getPicfromUrl(object):
def __init__(self, session, url=None, path=None):
self.path = path
self.session = session
self.download(url, path)

def download(self, url, path):
downloadPage(url, path).addCallback(self.downloadDone).addErrback(se lf.downloadError)

def downloadError(self, raw):
print "[e2Fetcher.fetchPage]: download Error", raw
self.session.open(MessageBox, text = _("Error downloading: ") + self.path, type = MessageBox.TYPE_ERROR)

def downloadDone(self,raw):
print "[e2Fetcher.fetchPage]: download done", raw
self.session.open(PictureScreen, picPath = self.path)

################################################## #########################

def main(session, **kwargs):
getPicfromUrl(session,"http://www.*****.com/map/ShowImage.asp", "/tmp/tehran1.tmp")

################################################## #########################

def Plugins(**kwargs):
return PluginDescriptor(
name=" online",
description="showing online-map",
where = PluginDescriptor.WHERE_PLUGINMENU,
icon="./tehran1.png",
fnc=main)

ehp_kz6597
دوشنبه 03 بهمن 1390, 07:05 صبح
سلام
1- برای پرسیدن سوالات تاپیک جداگانه ای در نظر گرفته شده :تاپیک جامع سوالات پایتون (http://barnamenevis.org/showthread.php?321992-%D8%AA%D8%A7%D9%BE%DB%8C%DA%A9-%D8%AC%D8%A7%D9%85%D8%B9-%D8%B3%D9%88%D8%A7%D9%84%D8%A7%D8%AA-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86&daysprune=30)
2- تا اساتید بیان و بررسی کنن یه نگاه کوچولو کردم
یه چند خط هست که احتمالا تغییرات باید اونجا اعمل بشه چون ماژولها رو ندارم نتونستم تست کنم
بخش مربوط به نمایش عکس در قسمت های ابتدایی برنامه و قبل از تابع DecodePicture هست
سایر بخشهای برنامه مربوط به عملیات دریافت و ... فایل میشه که باهاشون کار نداریم
این کد مربوط به یه کتابه ؟ (به خاطر خط اول کد پرسیدم)
اگه اینطوره مشخصاتش چیه ؟ شاید با بررسی مطالب کتاب بهتر بشه کمک کرد

r00tkit
دوشنبه 03 بهمن 1390, 07:43 صبح
1- برای پرسیدن سوالات تاپیک جداگانه ای در نظر گرفته شده :تاپیک جامع سوالات پایتون
نه دوست من ؛ برای هر سوال جدید باید یه تاپیک جدا ساخته بشه ؛ شما هم اگه دوست داشتی می تونی لینک سوال ها رو توی ان تاپیک جامع قرار بدی

Glimpser
دوشنبه 03 بهمن 1390, 09:42 صبح
دوست عزیز این کد را مستقیم از یک دستگاه مدیا پلیر استخراج کردم حالا برنامه نویسش از چه جایی سورسها را آورده من اطلاع ندارم
می خواستم ببینم راهی داره که بشه این تغییرات را انجام داد یا خیر ؟

ehp_kz6597
سه شنبه 04 بهمن 1390, 08:20 صبح
سلام
آقا اصلا بزار از آزمون و خطا استفاده کنیم
چیزی که از این کد پیداست اینه که اون عکس که نمایش داده میشه همون mypic باید باشه

<widget name="myPic" position="0,0" size="1280,720" zPosition="1" alphatest="on" />
توی این خط ، شما مقدار position رو تغییر بده ببین عکس مورد نظر تغییر مکان میده ؟
و اما مورد بعد شما به این عکس دسترسی دارید ؟ یعنی توی مسیری که این کد قرار داره و یا هرپوشه دیگه ای شما این عکس رو میبینید ؟
شما به ماژولهای فراخوانی شده دسترسی دارید ؟ اگه اینطوره و امکانش هست ، این ماژولها رو به همراه یک عکس از پلیرتون اینجا بذارین تا بیشتر بررسی کنیم

Glimpser
چهارشنبه 05 بهمن 1390, 09:07 صبح
سلام
آقا اصلا بزار از آزمون و خطا استفاده کنیم
چیزی که از این کد پیداست اینه که اون عکس که نمایش داده میشه همون mypic باید باشه

توی این خط ، شما مقدار position رو تغییر بده ببین عکس مورد نظر تغییر مکان میده ؟
و اما مورد بعد شما به این عکس دسترسی دارید ؟ یعنی توی مسیری که این کد قرار داره و یا هرپوشه دیگه ای شما این عکس رو میبینید ؟
شما به ماژولهای فراخوانی شده دسترسی دارید ؟ اگه اینطوره و امکانش هست ، این ماژولها رو به همراه یک عکس از پلیرتون اینجا بذارین تا بیشتر بررسی کنیم

دوست عزیز عکسی که نشان داده میشود tehran1.tmp این است
که از طریق
getPicfromUrl(session,"http://www.*****.com/map/ShowImage.asp"
دانلود میشود
با تغییر مقدار پوزیشن هم جای تصویر روی صفحه تغییر میکند
هدف من قرار دادن دو یا سه عکس همزمان توی یک صفحه است

ضمنا کل برنامه همین فایل است که محتوای آن را من اینجا کپی کردم