Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

10 443 Posts in 5 818 Topics- by 1 216 Members - Latest Member: santini862

16 October 2019, 11:50
Select Language English | Russian ru | German
Main PageIRC Client KVIrc forumRussian talksСкриптингОбъектно-ориентированный скриптингtoolbutton с всплывающим меню
Pages: [1]
Print
Author Topic: toolbutton с всплывающим меню  (Read 13974 times)
0 Members and 1 Guest are viewing this topic.
Victor
Новичок
*

Репутация: 1
Posts: 23


View Profile
« on: 22 March 2009, 13:53 »

Не получается создать toolbutton с всплывающим меню (Popupmenu). При клике toolbutton, меню не появляется
Пытаюсь так:
Code:
class(test,dialog){constructor(){

%Toolbutton=$new(toolbutton,$$)
%Toolbutton->$setTextLabel("Меню")
%Toolbutton->$setImage(1)

%Popup=$new(popupmenu,%Toolbutton)
%Popup->$insertItem("1")
%Popup->$insertItem("2")

privateimpl(%Toolbutton,clickEvent){Toolbutton->$openPopup(1);}
}}
$new(test,$$,dialog)->$Show

В чем ошибка?
Logged
Maximusya
Глобальный модератор
*****

Репутация: 49
Gender: Male
Posts: 343



View Profile
« Reply #1 on: 22 March 2009, 15:27 »

Я тоже не смог приделать меню через $setPopup. На него мне ругается вотт так:
Quote
[13:28:09] [KVS] Предупреждение: Невозможно добавить объект, не являющийся всплывающим меню
[13:28:09] [KVS]   в контексте скрипта "test::constructor", Строка 11, около символа 15
Но вот так по крайней мере можно сделать:
Code:
class(test,dialog)
{
constructor()
{

@%toolbutton=$new(toolbutton,$$)
@%toolbutton->$setUsesTextLabel(1)
@%toolbutton->$setTextPosition(BesideIcon)
@%toolbutton->$setTextLabel("Меню")
@%toolbutton->$setImage(1)

@%popup=$new(popupmenu,$$)
@%popup->$insertItem("1")
@%popup->$insertItem("2")

//@%toolbutton->$setPopup(@%popup);
objects.connect @%toolbutton clicked $$ tbclicked

}

function tbclicked()
{
@%popup->$exec();
}

}

%w = $new(test);
%w->$show();
« Last Edit: 22 March 2009, 15:29 by Maximusya » Logged
Victor
Новичок
*

Репутация: 1
Posts: 23


View Profile
« Reply #2 on: 22 March 2009, 18:02 »

Maximusya хочется конечно что бы меню всплывало под тулбутоном как это происходит на тулбаре квирк. Попробую сделать через вычисления
Еще вопрос, а когда ставится "@" перед переменой это значит что переменная глобальная? или есть какие то отличия от глобальной переменой?
Logged
Maximusya
Глобальный модератор
*****

Репутация: 49
Gender: Male
Posts: 343



View Profile
« Reply #3 on: 22 March 2009, 19:48 »

@%a = $$->%a = $this->%a
Это все обозначение того, что %a является членом экземпляра данного класса. Это не глобальность.
С функциями так же:
@$do = $$->$do = $this->$do
Logged
Victor
Новичок
*

Репутация: 1
Posts: 23


View Profile
« Reply #4 on: 3 May 2009, 14:21 »

такую же ошибку пишет:
Quote
[KVS] Предупреждение: Невозможно добавить объект, не являющийся всплывающим меню
[KVS] в контексте скрипта "kvirc::corecall(run)", Строка 11, около символа 12
когда я пытаюсь добавить субменю в всплывающие меню:
Code:
%popup[0]=$new(popupmenu,$$)
%popup[0]->$insertItem("item")
%popup[0]->$insertItem("item")

#%popup[1]=$new(popupmenu,%popup[0])
%popup[1]=$new(popupmenu,$$)
%popup[1]->$insertItem("subitem")
%popup[1]->$insertItem("subitem")

%popup[0]->$insertHandle("sub",%popup[1])

%popup[0]->$show()

не пойму почему ругается, вроде и объект является верным, который я пытаюсь добавить
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic