Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: Sasha от Январь 27, 2014, 14:31



Название: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: Sasha от Январь 27, 2014, 14:31
Здравствуйте,
Например, я хочу проверить является ли стиль кнопки стилем Qt::ToolButtonIconOnly. В C++ коде я напишу:
Код
C++ (Qt)
if( btnStyle==Qt::ToolButtonIconOnly )
  ...
 
Как мне то же самое проделать в скрипте? Т.е. откуда взять это самое ToolButtonIconOnly?


Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: carrygun от Январь 28, 2014, 04:33
Посмотреть в таблице шестнадцатеричное значение переменной.


Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: Sasha от Январь 28, 2014, 12:22
Посмотреть в таблице шестнадцатеричное значение переменной.
Не понял. Или это прикол?


Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: alex312 от Январь 28, 2014, 12:49
Не понял.
http://qt-project.org/doc/qt-5.0/qtcore/qt.html#ToolButtonStyle-enum


Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: Sasha от Январь 28, 2014, 17:01
Не понял.
http://qt-project.org/doc/qt-5.0/qtcore/qt.html#ToolButtonStyle-enum
И что?
Или вы имеете ввиду что в скриптах использовать просто численное значение? Тогда непонятно зачем carrygun советовал шестнадцатеричное значение смотреть и непонятно в какой таблице. Или, опять же, он имел ввиду что просто посмотреть в описание конкретного enum-а.
Если всё так, то это понятно, но вопрос то в ДРУГОМ. Как мне в скрипте использовать слово ToolButtonIconOnly. Наверно я просто не так выразился в вопросе. Например, я вначале думал, что можно вместо
Код
C++ (Qt)
Qt::ToolButtonIconOnly
 
просто написать:
Код
C++ (Qt)
Qt.ToolButtonIconOnly
 
но так не работает.


Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: carrygun от Январь 29, 2014, 05:01
Код
Javascript
var ToolButtonStyle = new Object();
ToolButtonStyle.ToolButtonIconOnly = 0;
...
 
if (flags & ToolButtonStyle.ToolButtonIconOnly) {...
 


Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: AlexEx от Январь 29, 2014, 19:50
Qt.AlignLeft, Qt.AlignHCenter ... вполне работает


Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: Sasha от Февраль 03, 2014, 10:30
Код
Javascript
var ToolButtonStyle = new Object();
ToolButtonStyle.ToolButtonIconOnly = 0;
...
 
if (flags & ToolButtonStyle.ToolButtonIconOnly) {...
 
Это ж тоже не очень хорошо. Вдруг в новой версии Qt значение enum-а поменяется.


Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: Sasha от Февраль 03, 2014, 10:53
Qt.AlignLeft, Qt.AlignHCenter ... вполне работает

Это уже интересно... А это точно в скрипте, а не в QML? Если в скрипте, то какая версия Qt? У меня 4.8.0. и при попытке такого использования пишет "ReferenceError: Can't find variable: Qt"


Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: AlexEx от Февраль 05, 2014, 14:45
В скрипте  :), QT 4.8.4, правда загружены еще расширения qt.core и qt.xml от Script Generator'а



Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: Sasha от Февраль 07, 2014, 10:57
В скрипте  :), QT 4.8.4, правда загружены еще расширения qt.core и qt.xml от Script Generator'а


Наверное всё дело в "...расширения qt.core и qt.xml от Script Generator'а". Script Generator - это о котором написано, например, в http://filonenko-mikhail.blogspot.in/2010/07/qtscriptgenerator.html ?


Название: Re: Как использовать из Qt скриптов стандартные Qt enum-ы (перечисления)
Отправлено: AlexEx от Февраль 07, 2014, 11:46
Да, он самый.