<ui version="4.0" >
 <author></author>
 <comment>*********************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the tools applications of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
*********************************************************************</comment>
 <exportmacro></exportmacro>
 <class>ControlInfo</class>
 <widget class="QDialog" name="ControlInfo" >
  <property name="geometry" >
   <rect>
    <x>0</x>
    <y>0</y>
    <width>600</width>
    <height>480</height>
   </rect>
  </property>
  <property name="windowTitle" >
   <string>Control Details</string>
  </property>
  <layout class="QVBoxLayout" >
   <property name="margin" >
    <number>11</number>
   </property>
   <property name="spacing" >
    <number>6</number>
   </property>
   <item>
    <widget class="QTreeWidget" name="listInfo" >
     <column>
      <property name="text" >
       <string>Item</string>
      </property>
     </column>
     <column>
      <property name="text" >
       <string>Value</string>
      </property>
     </column>
    </widget>
   </item>
   <item>
    <layout class="QHBoxLayout" >
     <property name="margin" >
      <number>0</number>
     </property>
     <property name="spacing" >
      <number>6</number>
     </property>
     <item>
      <spacer>
       <property name="orientation" >
        <enum>Qt::Horizontal</enum>
       </property>
       <property name="sizeType" >
        <enum>QSizePolicy::Expanding</enum>
       </property>
       <property name="sizeHint" >
        <size>
         <width>1</width>
         <height>1</height>
        </size>
       </property>
      </spacer>
     </item>
     <item>
      <widget class="QPushButton" name="buttonClose" >
       <property name="text" >
        <string>C&amp;lose</string>
       </property>
      </widget>
     </item>
    </layout>
   </item>
  </layout>
 </widget>
 <layoutdefault spacing="6" margin="11" />
 <pixmapfunction></pixmapfunction>
 <resources/>
 <connections>
  <connection>
   <sender>buttonClose</sender>
   <signal>clicked()</signal>
   <receiver>ControlInfo</receiver>
   <slot>accept()</slot>
   <hints>
    <hint type="sourcelabel" >
     <x>536</x>
     <y>457</y>
    </hint>
    <hint type="destinationlabel" >
     <x>428</x>
     <y>449</y>
    </hint>
   </hints>
  </connection>
 </connections>
</ui>
