Russian Qt Forum
Сентябрь 30, 2024, 04:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt Texture для X3D  (Прочитано 1527 раз)
goshanoob
Гость
« : Декабрь 27, 2016, 15:07 »

Привет!
Я пробую использовать Qt Widgets в X3D-программах. Для добавления текстуры на сцену использую <UITexture>. Однако поля ввода остаются неактивны (не позволяют вносить текст с клавиатуры). Проблема отсутствует, если открывать интерфейс в отдельном окне с помощью соответствующего поля show <UITexture>, но это не ок. Делал ли кто-нибудь что-нибудь подобное??
Разметка X3D: здесь бокс бегает влево-вправо, если теребить счётчик и ползунок, а хочется вводить цифры с клавы
Код:
<?xml version="1.0" encoding="UTF-8"?>
<X3D version="3.2"> <Scene><Background skyColor="1 1 1"/>
<Viewpoint position="0 0 4"/>

<Transform DEF="бокс" translation="0 0 0">
 <Shape> <Box size="0.5 0.5 0.5" /> <Appearance> <Material diffuseColor="0 1 0" /> </Appearance> </Shape>
</Transform>

<TouchSensor DEF='сенсорМыши'/>

<Transform translation="0 -0.7 0" scale="1 1 1">
 <Shape> <Rectangle2D size="2 1" resolution="2"/>
   <Appearance>
    <Material diffuseColor='0.7 0.7 0.7'/>
<UITexture DEF="текстура" url="gui.ui" >
<field name="q" type="SFInt32" accessType="inputOutput" value="0"/>
<field name="q2" type="SFInt32" accessType="inputOutput" value="0"/>
</UITexture>
   </Appearance>
 </Shape></Transform>
 
<Script DEF='перемещение'> 
 <field name='q' type='SFInt32' accessType='inputOnly'/>
 <![CDATA[ ecmascript:
function q(v) {
  Browser.currentScene.getNamedNode('бокс').translation[0] = v;
}
 ]]> </Script>
 
 <ROUTE fromNode='сенсорМыши' fromField='isActive' toNode='текстура' toField='set_button1'/>
 <ROUTE fromNode='сенсорМыши' fromField='hitTexCoord_changed' toNode='текстура' toField='set_pointer'/>
 
 <ROUTE fromField='q' fromNode='текстура' toField='q' toNode='перемещение'/>
 <ROUTE fromField='q2' fromNode='текстура' toField='q' toNode='перемещение'/>

 </Scene> </X3D>
Разметка UI:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>447</width>
    <height>154</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralWidget">
   <widget class="QSpinBox" name="spinBox">
    <property name="geometry">
     <rect>
      <x>120</x>
      <y>40</y>
      <width>42</width>
      <height>22</height>
     </rect>
    </property>
   </widget>
   <widget class="QLineEdit" name="lineEdit">
    <property name="geometry">
     <rect>
      <x>170</x>
      <y>40</y>
      <width>113</width>
      <height>25</height>
     </rect>
    </property>
   </widget>
  </widget>
  <widget class="QMenuBar" name="menuBar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>447</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QToolBar" name="mainToolBar">
   <attribute name="toolBarArea">
    <enum>TopToolBarArea</enum>
   </attribute>
   <attribute name="toolBarBreak">
    <bool>false</bool>
   </attribute>
  </widget>
  <widget class="QStatusBar" name="statusBar"/>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>
Всё запускается в InstantPlayer
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 21.