1

私はこの写真に似たものを達成したいと思います:

ここに画像の説明を入力

ただし、トップ レベル (「アドレス バー」、「フォーム」、および「ユーザー名...」) はラジオ ボタンにする必要があります。

アイデアは、ラジオボタンの状態に応じてサブレベルを有効または無効にする必要があるということです。サブレベルは、図のように右にシフトする必要があります。

それはエレガントな方法でQtを行うことができますか?

4

2 に答える 2

0

これらのサブアイテム (「閲覧履歴」、「お気に入り」など) を別のウィジェットに配置しQWidget、そのウィジェットのQWidget::setEnabled()スロットを「アドレスバー」ラジオボタンのQAbstractButton::toggled()信号に接続するだけです。

これは Qt Designer の.uiファイルです (シグナルスロット接続が機能している場合は、Designer でCtrl+を試してください)。R

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Form</class>
 <widget class="QWidget" name="Form">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>170</width>
    <height>178</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <layout class="QVBoxLayout" name="verticalLayout">
   <item>
    <widget class="QRadioButton" name="radioButton">
     <property name="text">
      <string>RadioButton</string>
     </property>
     <property name="checked">
      <bool>true</bool>
     </property>
    </widget>
   </item>
   <item>
    <widget class="QWidget" name="widget" native="true">
     <layout class="QVBoxLayout" name="verticalLayout_2">
      <item>
       <widget class="QCheckBox" name="checkBox">
        <property name="text">
         <string>CheckBox</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QCheckBox" name="checkBox_2">
        <property name="text">
         <string>CheckBox</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QCheckBox" name="checkBox_3">
        <property name="text">
         <string>CheckBox</string>
        </property>
       </widget>
      </item>
     </layout>
    </widget>
   </item>
   <item>
    <widget class="QRadioButton" name="radioButton_2">
     <property name="text">
      <string>RadioButton</string>
     </property>
    </widget>
   </item>
   <item>
    <widget class="QRadioButton" name="radioButton_3">
     <property name="text">
      <string>RadioButton</string>
     </property>
    </widget>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections>
  <connection>
   <sender>radioButton</sender>
   <signal>toggled(bool)</signal>
   <receiver>widget</receiver>
   <slot>setEnabled(bool)</slot>
   <hints>
    <hint type="sourcelabel">
     <x>84</x>
     <y>17</y>
    </hint>
    <hint type="destinationlabel">
     <x>84</x>
     <y>77</y>
    </hint>
   </hints>
  </connection>
 </connections>
</ui>
于 2016-12-07T07:27:19.477 に答える