Почему я не могу удалить tabWidget в Qt Designer? - PullRequest
0 голосов
/ 05 октября 2019

Я использую Qt Designer в сочетании с MSVC2019. Недавно я изменил базовый класс формы с QWidget на QMainWindow вручную, отредактировав файл .ui, заголовок и конструктор. В этой форме у меня есть tabWidget, который сейчас не может быть выбран. Он отображается в инспекторе объектов и редакторе свойств, и я могу редактировать его свойства, но не выбирать их. Это не похоже на все другие виджеты в моей форме. Когда я щелкаю правой кнопкой мыши на tabWidget в Инспекторе объектов, он дает те же параметры меню, что и QMainWindow (Создать строку меню, Добавить панель инструментов).

Я попытался изменить различные свойства объектаtabWidget и его главное окно, но ничего не помогло.

Вот область интереса .ui. Все, что я сделал, это заменил Widget на QMainWindow в строке 4.

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>campanel</class>
 <widget class="QMainWindow" name="campanel">
  <property name="enabled">
   <bool>true</bool>
  </property>
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>1509</width>
    <height>984</height>
   </rect>
  </property>
  <property name="sizePolicy">
   <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
    <horstretch>0</horstretch>
    <verstretch>0</verstretch>
   </sizepolicy>
  </property>
  <property name="windowTitle">
   <string>FASTPLOTTER</string>
  </property>
  <property name="windowIcon">
   <iconset>
    <normaloff>bigmoves.ico</normaloff>bigmoves.ico</iconset>
  </property>
  <property name="windowOpacity">
   <double>1.000000000000000</double>
  </property>
  <property name="autoFillBackground">
   <bool>false</bool>
  </property>
  <property name="styleSheet">
   <string notr="true">background-color: rgb(255, 255, 255);</string>
  </property>
  <property name="tabShape">
   <enum>QTabWidget::Rounded</enum>
  </property>
  <property name="dockNestingEnabled">
   <bool>true</bool>
  </property>
  <property name="dockOptions">
   <set>QMainWindow::AllowNestedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks|QMainWindow::ForceTabbedDocks</set>
  </property>
  <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="tabPosition">
    <enum>QTabWidget::West</enum>
   </property>
   <property name="currentIndex">
    <number>1</number>
   </property>
   <property name="documentMode">
    <bool>true</bool>
   </property>
   <property name="tabsClosable">
    <bool>true</bool>
   </property>
   <property name="movable">
    <bool>true</bool>
   </property>
   <widget class="QWidget" name="iolji">
    <attribute name="title">
     <string/>
    </attribute>
   </widget>
   <widget class="QWidget" name="tab">
    <attribute name="title">
     <string/>
    </attribute>
   </widget>
  </widget>

1 Ответ

0 голосов
/ 05 октября 2019

QMainWindow - это особый случай QWidget: он имеет строку меню, строку состояния, панели инструментов, может добавлять закрепляемые рамки и имеет центральный виджет. Хотя вы можете переключаться между QWidget и QDialog в файлах пользовательского интерфейса, при переключении на QMainWindow вы должны встроить все содержимое предыдущего виджета в centralWidget:

<widget class="QMainWindow" name="MainWindow">
  <!-- size policy, geometry... -->
  <widget class="QWidget" name="centralwidget">
    <!-- size policy, layout, content of your previous QWidget -->
  </widget>
</widget>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...