Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите пожалуйста создать свой widget -, аналог Tabber(), python 2.4.2, TG 0.9a6 
:(
    Опции темы
pythonwin
  Дата 12.9.2006, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Всем привет!

помогите пожалуйста создать свой widget - аналог Tabber()

код:
Код


#---------------------------------------------------------------------------------------
class TabControl(Widget):
    """This widget includes the tabber js and css into your rendered
    page so you can create tabbed divs by assigning them the 'tabber' 
    and 'tabbertab' classes.
    """
    css = [CSSSource("""
          .tabControl{
            
          }      
          .tabHeader{
                
            }            
            .tabPage{
                border-right:1px solid #B0BEC7;
            border-left:1px solid #B0BEC7;
            border-top:1px solid #B0BEC7;
            border-bottom:1px solid #B0BEC7;
            font: normal 12px arial;
            cursor:pointer;
            padding-left:10px;
            
            background-color:#D8E3EA;
                padding-right:10px;
                border-collapse:collapse;
            }
                
            .tabPageSelected{
                background-color: #F2F5F8;
                cursor:pointer;
                font: normal 12px arial;
                border-right:1px solid #B0BEC7;
            border-left:1px solid #B0BEC7;
            border-top:1px solid #B0BEC7;
            border-bottom:0px solid #B0BEC7;
                padding-left:10px;
                padding-right:10px;
                border-collapse:collapse;
            }
          .tabHeaderLine{
            border-bottom:1px solid #B0BEC7;
          }
            .tabControlBody tbody tr td{
                display:none;
                border-collapse:collapse;
                font: normal 12px arial;
                vertical-align: top;
            }
            
            .tabControlBody{
                background-color: #FBFCFD;
                border-right:1px solid #B0BEC7;
            border-left:1px solid #B0BEC7;
            border-bottom:1px solid #B0BEC7;
            }""")]
    javascript = [JSSource("""
function changeTab(sel){
    //header
    /*
    * created by Tjomi4 05.09.2006
    */

    i=sel.cellIndex;
    num=sel.id.indexOf('_');
    ID=sel.id.substring(0,num);
    
    sel.className="tabPageSelected"
    tabbs=sel.parentNode;
    for (j=0;j<tabbs.cells.length;j++){
        if(i!=j && j!=tabbs.cells.length-1)
            tabbs.cells[j].className="tabPage";
    }
    //body
    tab_body=document.getElementById(ID);
    tab_body.cells[i].style.display="block";
    
    for(j=0;j<tab_body.cells.length;j++){
        if(i!=j)
            tab_body.cells[j].style.display="none";
    }
}
function selectDefaultTab(ID){
    obj=document.getElementById(ID);
    changeTab(obj);
}""")]

class TabControlDesc(CoreWD):
    name = "TabControl"
    for_widget = TabControl()
    template = """
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
py:extends="'master.kid'">
    <head>
    <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
    <title>123</title>
<div py:content="for_widget.display()"/>
    </head>
    <body>
        <table border="0" class="tabControl" cellspacing="0" cellpadding="0" width="100%">
            <tbody>
                <tr>
                    <td>
                        <table border="0" cellspacing="0" cellpadding="0" class="tabHeader">
                            <tbody>
                                <tr>
                                    <td onclick="changeTab(this);" id="s3475394dfbgf_1" class="tabPage">
                                        <img src="static/images/Start Favorites.gif" align="absmiddle" border="0" height="50" width="50" title="img.gif" alt='img.gif'/>
                                    </td>
                                    <td onclick="changeTab(this);" id="s3475394dfbgf_2" class="tabPage">
                                        Tab2
                                    </td>
                                    <td onclick="changeTab(this);" id="s3475394dfbgf_3" class="tabPage" width="28">
                                        Tab3
                                    </td>
                                    <td onclick="changeTab(this);" id="s3475394dfbgf_4" class="tabPage" width="28">
                                        Tab4
                                    </td>
                                    <td width="100%" class="tabHeaderLine"><img src="spacer" width="1" height="1"/></td>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
                <tr>
                    <td height="400px" valign="top">
                        <table  width="100%" class="tabControlBody" cellpadding="0" cellspacing="0" style="height:100%" border="0">
                            <tbody>
                                <tr id="s3475394dfbgf">
                                    <td>
                                        1 asdfasd ;fdng;fdng;dfg fgdfgfd gkfg fdg dfgd gdfgfg df gfgfdgdf g fdg <br/>
                                        dsfdfsdf
                                    </td>
                                    <td>
                                        2 dsfsdfd
                                    </td>
                                    <td>
                                        3 xzcxcxcxzcxzcxc xzczxc
                                    </td>
                                    <td>
                                        Tab #4
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
            </tbody>
        </table>
        <script type="text/javascript">document.onload=selectDefaultTab('s3475394dfbgf_1');</script>
    </body>
</html>
    """

-------------------------------------------------------------------------------------------

при запуске проекта ошибка:

Traceback (most recent call last):
  File "C:\pr\start-test2.py", line 26, in ?
    from pr.controllers import Root
  File "C:\pr\pr\controllers.py", line 20, in ?
    from MyWidgets import *
  File "C:\pr\pr\MyWidgets.py", line 733, in ?
    class TabControlDesc(CoreWD):
  File "c:\python24\lib\site-packages\TurboGears-0.9a6-py2.4.egg\turbogears\widgets\base.py", line 600, in __init__
    super(MetaDescription, cls).__init__(name, bases, dct)
  File "c:\python24\lib\site-packages\TurboGears-0.9a6-py2.4.egg\turbogears\widgets\meta.py", line 75, in __init__
    (cls.template_c,
  File "c:\python24\lib\site-packages\TurboGears-0.9a6-py2.4.egg\turbogears\widgets\meta.py", line 197, in load_kid_temp
late
    return (kid.load_template(t, name=modname).Template, t)
  File "c:\python24\lib\site-packages\kid-0.9.1-py2.4.egg\kid\__init__.py", line 125, in load_template
    mod = importer._create_module(code, name, filename, store=cache)
  File "c:\python24\lib\site-packages\kid-0.9.1-py2.4.egg\kid\importer.py", line 88, in _create_module
    exec code in mod.__dict__
  File "<string>", line 17, in ?
  File "c:\python24\lib\site-packages\kid-0.9.1-py2.4.egg\kid\template_util.py", line 43, in get_base_class
    cls = kid.load_template(path).Template
  File "c:\python24\lib\site-packages\kid-0.9.1-py2.4.egg\kid\__init__.py", line 120, in load_template
    code = compiler.compile(fo, filename, encoding)
  File "c:\python24\lib\site-packages\kid-0.9.1-py2.4.egg\kid\compiler.py", line 48, in compile
    py = kid.parser.parse(source, encoding, filename=filename)
  File "c:\python24\lib\site-packages\kid-0.9.1-py2.4.egg\kid\parser.py", line 45, in parse
    parser = KidParser(document(source, encoding=encoding, filename=filename), encoding)
  File "c:\python24\lib\site-packages\kid-0.9.1-py2.4.egg\kid\pull.py", line 54, in document
    file = open_resource(file, 'rb')
  File "c:\python24\lib\site-packages\kid-0.9.1-py2.4.egg\kid\util.py", line 25, in open_resource
    (scheme, rest) = splittype(uri)
  File "C:\Python24\lib\urllib.py", line 927, in splittype
    match = _typeprog.match(url)
TypeError: Error when calling the metaclass bases
    expected string or buffer



и дальше проект не запускается.

вставлял TabControl.kid  - и 
Код


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
py:extends="'master.kid'">
    <head>
    <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
    <title>123</title>
<div py:content="TabControl.display()"/>
    </head>
    <body>
        <table border="0" class="tabControl" cellspacing="0" cellpadding="0" width="100%">
            <tbody>
                <tr>
                    <td>
                        <table border="0" cellspacing="0" cellpadding="0" class="tabHeader">
                            <tbody>
                                <tr>
                                    <td onclick="changeTab(this);" id="s3475394dfbgf_1" class="tabPage">
                                        <img src="static/images/Start Favorites.gif" align="absmiddle" border="0" height="50" width="50" title="img.gif" alt='img.gif'/>
                                    </td>
                                    <td onclick="changeTab(this);" id="s3475394dfbgf_2" class="tabPage">
                                        Tab2
                                    </td>
                                    <td onclick="changeTab(this);" id="s3475394dfbgf_3" class="tabPage" width="28">
                                        Tab3
                                    </td>
                                    <td onclick="changeTab(this);" id="s3475394dfbgf_4" class="tabPage" width="28">
                                        Tab4
                                    </td>
                                    <td width="100%" class="tabHeaderLine"><img src="spacer" width="1" height="1"/></td>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
                <tr>
                    <td height="400px" valign="top">
                        <table  width="100%" class="tabControlBody" cellpadding="0" cellspacing="0" style="height:100%" border="0">
                            <tbody>
                                <tr id="s3475394dfbgf">
                                    <td>
                                        1 asdfasd ;fdng;fdng;dfg fgdfgfd gkfg fdg dfgd gdfgfg df gfgfdgdf g fdg <br/>
                                        dsfdfsdf
                                    </td>
                                    <td>
                                        2 dsfsdfd
                                    </td>
                                    <td>
                                        3 xzcxcxcxzcxzcxc xzczxc
                                    </td>
                                    <td>
                                        Tab #4
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
            </tbody>
        </table>
        <script type="text/javascript">document.onload=selectDefaultTab('s3475394dfbgf_1');</script>
    </body>
</html>



код метода Root

Код


    @turbogears.expose(template=".templates.TabControl")
    def TabControl(self, *args, **kw):
        return dict(TabControl=TabControl())



И у меня всё заработало. 

не могу понять в чем проблема

Это сообщение отредактировал(а) pythonwin - 12.9.2006, 07:59
PM WWW GTalk Jabber   Вверх
PyS
Дата 19.9.2006, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



попробуй поместить текст TabControlDesc.template в файл *.kid , а TabControlDesc.template="путь к файлу, но без расширения", например: 
Код

    template="имя_пакета.templates.имя_файла_без_расширения"


работать должно! smile
PM MAIL   Вверх
pythonwin
Дата 19.9.2006, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



спасибо, - сейчас посмотрю. smile
PM WWW GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.