Добавил меню в QT Designer'е, удалил, в файле не удалилось?

Рейтинг: 0Ответов: 1Опубликовано: 23.08.2023

Есть у меня ненулевой файлик Qt Designer под мелкие эксперименты, в нем сегодня тов. @S. Nick нашел вот в этом вопросе странное.
Для примера раньше, я добавил туда меню Файл, с пунктом меню mf_Open. А потом, когда необходимость в нем отпала - я удалил его. Вообще, совсем. У меня сейчас в Qt Designer - не видно упоминания mf_Open совсем никак. Однако, в .ui файле что то осталось, и было в последствие сконвертировано в .py формат. В тексте ниже оно выделено символами # ??? # ???:

ui_one_button.py:

from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(502, 180)
        MainWindow.setLayoutDirection(QtCore.Qt.LayoutDirection.LeftToRight)
        MainWindow.setStyleSheet("background-color: rgb(254, 214, 188);")
        self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.Baby_Groot = QtWidgets.QPushButton(parent=self.centralwidget)
        self.Baby_Groot.setEnabled(False)
        font = QtGui.QFont()
        font.setPointSize(11)
        self.Baby_Groot.setFont(font)
        self.Baby_Groot.setStyleSheet("background-color: rgb(85, 170, 255);")
        self.Baby_Groot.setObjectName("Baby_Groot")
        self.gridLayout.addWidget(self.Baby_Groot, 0, 0, 1, 1)
        self.Groot = QtWidgets.QTreeWidget(parent=self.centralwidget)
        self.Groot.setObjectName("Groot")
        item_0 = QtWidgets.QTreeWidgetItem(self.Groot)
        item_0 = QtWidgets.QTreeWidgetItem(self.Groot)
        item_0 = QtWidgets.QTreeWidgetItem(self.Groot)
        self.gridLayout.addWidget(self.Groot, 1, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 502, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)

# ???        self.mf_Open = QAction(parent=MainWindow)      # ???
# ???        self.mf_Open.setObjectName("mf_Open")          # ???

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.Baby_Groot.setText(_translate("MainWindow", "Baby Groot"))
        self.Groot.headerItem().setText(0, _translate("MainWindow", "1"))
        self.Groot.headerItem().setText(1, _translate("MainWindow", "2"))
        self.Groot.headerItem().setText(2, _translate("MainWindow", "3"))
        __sortingEnabled = self.Groot.isSortingEnabled()
        self.Groot.setSortingEnabled(False)
        self.Groot.topLevelItem(0).setText(0, _translate("MainWindow", "New Item"))
        self.Groot.topLevelItem(0).setText(1, _translate("MainWindow", "1"))
        self.Groot.topLevelItem(0).setText(2, _translate("MainWindow", "1"))
        self.Groot.topLevelItem(1).setText(0, _translate("MainWindow", "New Item"))
        self.Groot.topLevelItem(2).setText(0, _translate("MainWindow", "New Item"))
        self.Groot.setSortingEnabled(__sortingEnabled)
# ???        self.mf_Open.setText(_translate("MainWindow", "Open"))          # ???

А можно как то, я не знаю, автоочистить файл .ui за Designer'ом? Или только хардкор, только ручная вычитка?

По просьбам трудящихся - ui_one_button.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>502</width>
    <height>180</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <property name="layoutDirection">
   <enum>Qt::LeftToRight</enum>
  </property>
  <property name="styleSheet">
   <string notr="true">background-color: rgb(254, 214, 188);</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QGridLayout" name="gridLayout">
    <item row="0" column="0">
     <widget class="QPushButton" name="Baby_Groot">
      <property name="enabled">
       <bool>false</bool>
      </property>
      <property name="font">
       <font>
        <pointsize>11</pointsize>
       </font>
      </property>
      <property name="styleSheet">
       <string notr="true">background-color: rgb(85, 170, 255);</string>
      </property>
      <property name="text">
       <string>Baby Groot</string>
      </property>
     </widget>
    </item>
    <item row="1" column="0">
     <widget class="QTreeWidget" name="Groot">
      <column>
       <property name="text">
        <string>1</string>
       </property>
      </column>
      <column>
       <property name="text">
        <string>2</string>
       </property>
      </column>
      <column>
       <property name="text">
        <string>3</string>
       </property>
      </column>
      <item>
       <property name="text">
        <string>New Item</string>
       </property>
       <property name="text">
        <string>1</string>
       </property>
       <property name="text">
        <string>1</string>
       </property>
      </item>
      <item>
       <property name="text">
        <string>New Item</string>
       </property>
       <property name="text">
        <string/>
       </property>
       <property name="text">
        <string/>
       </property>
      </item>
      <item>
       <property name="text">
        <string>New Item</string>
       </property>
       <property name="text">
        <string/>
       </property>
       <property name="text">
        <string/>
       </property>
      </item>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>502</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <action name="mf_Open">
   <property name="text">
    <string>Open</string>
   </property>
  </action>
 </widget>
 <resources/>
 <connections/>
</ui>

Скриншот того что я вижу в Дизайнере (а спойлеров здесь нету?):

Скриншот

Ответы

▲ 1Принят

Для таких вещей как пункты меню в дизайнере генерируются QAction. Добавляются они автоматически, но удалять надо руками (на случай если это действие все же используется в коде). Поэтому включаете "Редактор действий", и удаляйте от туда ненужное

введите сюда описание изображения