KNX Editor Example

<?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>899</width>
    <height>619</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="controlWidget">
   <layout class="QGridLayout" name="gridLayout">
    <item row="0" column="0">
     <widget class="QSplitter" name="splitter">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
      <widget class="QWidget" name="layoutWidget">
       <layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,0">
        <property name="leftMargin">
         <number>5</number>
        </property>
        <property name="rightMargin">
         <number>5</number>
        </property>
        <item>
         <widget class="QGroupBox" name="communicationBox">
          <property name="title">
           <string>Communication</string>
          </property>
          <layout class="QVBoxLayout" name="verticalLayout_2">
           <property name="sizeConstraint">
            <enum>QLayout::SetMaximumSize</enum>
           </property>
           <item>
            <layout class="QVBoxLayout" name="verticalLayout">
             <property name="leftMargin">
              <number>5</number>
             </property>
             <property name="rightMargin">
              <number>5</number>
             </property>
             <item>
              <widget class="QLabel" name="label">
               <property name="text">
                <string>Local IP Address</string>
               </property>
              </widget>
             </item>
             <item>
              <widget class="QComboBox" name="localIpBox">
               <property name="editable">
                <bool>false</bool>
               </property>
               <property name="currentText">
                <string/>
               </property>
              </widget>
             </item>
             <item>
              <widget class="QLabel" name="ServerLabel">
               <property name="text">
                <string> Discovered Server</string>
               </property>
              </widget>
             </item>
             <item>
              <widget class="QComboBox" name="serverBox"/>
             </item>
             <item>
              <widget class="QLabel" name="serverDescription">
               <property name="text">
                <string/>
               </property>
               <property name="wordWrap">
                <bool>true</bool>
               </property>
               <property name="textInteractionFlags">
                <set>Qt::NoTextInteraction</set>
               </property>
              </widget>
             </item>
             <item>
              <spacer name="verticalSpacer">
               <property name="orientation">
                <enum>Qt::Vertical</enum>
               </property>
               <property name="sizeHint" stdset="0">
                <size>
                 <width>20</width>
                 <height>40</height>
                </size>
               </property>
              </spacer>
             </item>
             <item>
              <widget class="QRadioButton" name="radioButtonUDP">
               <property name="text">
                <string>Use UDP as transport layer protocol</string>
               </property>
               <property name="checked">
                <bool>true</bool>
               </property>
              </widget>
             </item>
             <item>
              <widget class="QRadioButton" name="radioButtonTCP">
               <property name="enabled">
                <bool>false</bool>
               </property>
               <property name="text">
                <string>Use TCP as transport layer protocol</string>
               </property>
              </widget>
             </item>
             <item>
              <widget class="QCheckBox" name="checkboxNat">
               <property name="text">
                <string>Use NAT for KNXnet/IP communication</string>
               </property>
              </widget>
             </item>
            </layout>
           </item>
           <item>
            <layout class="QHBoxLayout" name="horizontalLayout">
             <property name="leftMargin">
              <number>5</number>
             </property>
             <property name="topMargin">
              <number>5</number>
             </property>
             <property name="rightMargin">
              <number>5</number>
             </property>
             <property name="bottomMargin">
              <number>5</number>
             </property>
             <item>
              <widget class="QPushButton" name="scanButton">
               <property name="enabled">
                <bool>false</bool>
               </property>
               <property name="text">
                <string>Scan</string>
               </property>
              </widget>
             </item>
            </layout>
           </item>
          </layout>
         </widget>
        </item>
        <item>
         <widget class="QTabWidget" name="tabWidget">
          <property name="enabled">
           <bool>true</bool>
          </property>
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
          </property>
          <property name="currentIndex">
           <number>0</number>
          </property>
          <property name="tabsClosable">
           <bool>false</bool>
          </property>
          <widget class="LocalDeviceManagement" name="deviceManagement">
           <property name="enabled">
            <bool>true</bool>
           </property>
           <attribute name="title">
            <string>Local device management</string>
           </attribute>
          </widget>
          <widget class="Tunneling" name="tunneling">
           <property name="enabled">
            <bool>true</bool>
           </property>
           <attribute name="title">
            <string>Tunneling</string>
           </attribute>
          </widget>
          <widget class="TunnelingFeatures" name="tunnelingFeatures">
           <attribute name="title">
            <string>TunnelingFeatures</string>
           </attribute>
          </widget>
         </widget>
        </item>
       </layout>
      </widget>
      <widget class="QGroupBox" name="outputBox">
       <property name="sizePolicy">
        <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
         <horstretch>0</horstretch>
         <verstretch>0</verstretch>
        </sizepolicy>
       </property>
       <property name="maximumSize">
        <size>
         <width>16777215</width>
         <height>16777215</height>
        </size>
       </property>
       <property name="title">
        <string>Output</string>
       </property>
       <layout class="QVBoxLayout" name="verticalLayout_3">
        <item>
         <widget class="QTextEdit" name="outputEdit">
          <property name="acceptDrops">
           <bool>false</bool>
          </property>
          <property name="undoRedoEnabled">
           <bool>false</bool>
          </property>
          <property name="readOnly">
           <bool>true</bool>
          </property>
         </widget>
        </item>
       </layout>
      </widget>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>899</width>
     <height>21</height>
    </rect>
   </property>
   <widget class="QMenu" name="menuFile">
    <property name="title">
     <string>File</string>
    </property>
    <widget class="QMenu" name="menuImport">
     <property name="title">
      <string>Import</string>
     </property>
     <addaction name="actionEtsKeyringImport"/>
    </widget>
    <addaction name="menuImport"/>
    <addaction name="separator"/>
    <addaction name="actionExit"/>
   </widget>
   <widget class="QMenu" name="menuEdit">
    <property name="title">
     <string>Edit</string>
    </property>
    <widget class="QMenu" name="menuClear">
     <property name="title">
      <string>Clear</string>
     </property>
     <addaction name="actionClear_Output"/>
     <addaction name="actionClear_All"/>
    </widget>
    <addaction name="menuClear"/>
    <addaction name="separator"/>
    <addaction name="separator"/>
   </widget>
   <addaction name="menuFile"/>
   <addaction name="menuEdit"/>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
  <action name="actionConnect">
   <property name="text">
    <string>Connect</string>
   </property>
  </action>
  <action name="actionDisconnect">
   <property name="text">
    <string>Disconnect</string>
   </property>
  </action>
  <action name="actionExit">
   <property name="text">
    <string>Exit</string>
   </property>
  </action>
  <action name="actionCopy">
   <property name="text">
    <string>Copy</string>
   </property>
  </action>
  <action name="actionSelect_All">
   <property name="text">
    <string>Select All</string>
   </property>
  </action>
  <action name="actionClear_Output">
   <property name="text">
    <string>Clear Output</string>
   </property>
  </action>
  <action name="actionClear_Communication">
   <property name="text">
    <string>Clear Communication</string>
   </property>
  </action>
  <action name="actionClear_All">
   <property name="text">
    <string>Clear All</string>
   </property>
  </action>
  <action name="actionEtsKeyringImport">
   <property name="text">
    <string>KNX keyring file...</string>
   </property>
  </action>
 </widget>
 <customwidgets>
  <customwidget>
   <class>LocalDeviceManagement</class>
   <extends>QWidget</extends>
   <header>localdevicemanagement.h</header>
   <container>1</container>
  </customwidget>
  <customwidget>
   <class>Tunneling</class>
   <extends>QWidget</extends>
   <header>tunneling.h</header>
   <container>1</container>
  </customwidget>
  <customwidget>
   <class>TunnelingFeatures</class>
   <extends>QWidget</extends>
   <header>tunnelingfeatures.h</header>
   <container>1</container>
  </customwidget>
 </customwidgets>
 <resources/>
 <connections/>
</ui>