覆盖mousePressEvent后重新调整Qt Widget的大小

时间:2019-07-13 12:05:57

标签: python python-3.x pyqt pyqt5

我正在尝试在QtTreeView窗口小部件中实现上下文菜单。使用建议 Why mouseMoveEvent does nothing in PyQt5我创建了QTreeView的子类:

class TreeView(QTreeView):
def mousePressEvent(self, event):
    if event.type() == QEvent.MouseButtonPress:
        if event.button() == Qt.LeftButton:
            print( "Left click")
        elif event.button() == Qt.RightButton:
            print( "Right click")
        elif event.button() == Qt.MiddleButton:
            print( "Middle click")
    super(TreeView, self).mousePressEvent(event)

我正在重写QtTreeView(我在Qt Designer中设计的),如下所示:

self.dockWidget.treeView = TreeView(self.dockWidget.treeView)

这可以正常工作,并且允许在TreeView中捕获mousePressEvent,但是它会更改TreeView中内容的大小:

Incorrect TreeView Size

看起来应该像这样:

Correct TreeView Size[3]

我尝试设置SizePolicy:

self.dockWidget.treeView.setSizePolicy(QSizePolicy.Expanding,QSizePolicy.Expanding)

,但没有作用。我正在寻找一种方法来防止其更改大小,或者在更改后将其恢复为原始大小。

Reprex-3个文件:

main.py

from PyQt5.QtWidgets import QApplication, QMainWindow, QDockWidget, 
QListWidget,QTextEdit,QTreeView, QSizePolicy
from PyQt5.QtGui import QIcon, QStandardItemModel
from PyQt5.QtCore import Qt, QEvent
import sys

from utility_core_dockwidget import UtilityDockWidget



class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        title= "Dockable Application"
        top=400
        left=400
        width=600
        height= 500

        icon = "icon.png"

        self.setWindowTitle(title)
        self.setGeometry(top,left,width,height)
        self.setWindowIcon(QIcon("icon.png"))

        self.textEdit = QTextEdit()
        self.setCentralWidget(self.textEdit)
        self.dockAble()
        self.populateTreeView()

    def dockAble(self):
        self.dock = UtilityDockWidget()
        self.dock.treeView= TreeView(self.dock.treeView) #overwriting the treeview with the custom class causes the display issues
        self.addDockWidget(Qt.RightDockWidgetArea,self.dock)
        self.dock.treeView.setSizePolicy(QSizePolicy.Expanding,QSizePolicy.Expanding)

    def populateTreeView(self):
        print("here")
        model = self.createTreeViewLayerModel(self.dock.treeView)
        self.dock.treeView.setModel(model)

        for i in range (1,10):
            layerName= f"LayerName {i}"
            visibility = "Visible"
            layerId = i
            self.addTreeViewItem(model, layerName, visibility, layerId)

    def createTreeViewLayerModel(self,parent):
        model = QStandardItemModel(0, 3, parent)
        model.setHeaderData(0, Qt.Horizontal, "Layer Name")
        model.setHeaderData(1, Qt.Horizontal, "Visibility")
        model.setHeaderData(2, Qt.Horizontal, "Layer ID")

        return model

    def addTreeViewItem(self,model, layerName, visibility,layerId):
        model.insertRow(0)
        model.setData(model.index(0, 0), layerName)
        model.setData(model.index(0, 1), visibility)
        model.setData(model.index(0, 2), layerId)


class TreeView(QTreeView):
    def mousePressEvent(self, event):
        if event.type() == QEvent.MouseButtonPress:
            if event.button() == Qt.LeftButton:
                print( "Left click")
            elif event.button() == Qt.RightButton:
                print( "Right click")
            elif event.button() == Qt.MiddleButton:
                print( "Middle click")
        super(TreeView, self).mousePressEvent(event)

app = QApplication(sys.argv)
window=Window()
window.show()
app.exec()

utility_core_dockwidget.py:

import os

from PyQt5 import uic, QtWidgets, QtGui
from PyQt5.QtCore import pyqtSignal, Qt


FORM_CLASS, _ = uic.loadUiType(os.path.join(
    os.path.dirname(__file__), 'utility_core_dockwidget_base.ui'))


class UtilityDockWidget(QtWidgets.QDockWidget, FORM_CLASS):

    closingPlugin = pyqtSignal()

    def __init__(self, parent=None):
        """Constructor."""
        super(UtilityDockWidget, self).__init__(parent)
        self.setupUi(self)

    def closeEvent(self, event):
        self.closingPlugin.emit()
        event.accept()

utility_core_dockwidget_base.ui:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>utilityDockWidgetBase</class>
 <widget class="QDockWidget" name="utilityDockWidgetBase">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>660</width>
    <height>807</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Utility</string>
  </property>
  <widget class="QWidget" name="dockWidgetContents">
   <layout class="QHBoxLayout" name="horizontalLayout_7">
    <item>
     <widget class="QTabWidget" name="tabWidget_2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
      <property name="minimumSize">
       <size>
        <width>200</width>
        <height>500</height>
       </size>
      </property>
      <property name="currentIndex">
       <number>0</number>
      </property>
      <widget class="QWidget" name="tab_5">
       <attribute name="title">
        <string>Layer Source Changer</string>
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_7">
        <item>
         <layout class="QGridLayout" name="gridLayout_2">
          <property name="topMargin">
           <number>6</number>
          </property>
          <item row="1" column="0">
           <widget class="QLabel" name="label_8">
            <property name="font">
             <font>
              <weight>75</weight>
              <bold>true</bold>
             </font>
            </property>
            <property name="text">
             <string>Source List</string>
            </property>
           </widget>
          </item>
          <item row="0" column="1" colspan="2">
           <widget class="QLineEdit" name="searchBar">
            <property name="sizePolicy">
             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="maximumSize">
             <size>
              <width>10000</width>
              <height>16777215</height>
             </size>
            </property>
           </widget>
          </item>
          <item row="1" column="1">
           <widget class="QComboBox" name="layerSourceList">
            <property name="sizePolicy">
             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="minimumSize">
             <size>
              <width>250</width>
              <height>0</height>
             </size>
            </property>
            <property name="maximumSize">
             <size>
              <width>10000</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="font">
             <font>
              <family>MS Shell Dlg 2</family>
             </font>
            </property>
            <property name="editable">
             <bool>false</bool>
            </property>
           </widget>
          </item>
          <item row="1" column="2">
           <widget class="QPushButton" name="browseNewSource">
            <property name="maximumSize">
             <size>
              <width>35</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="text">
             <string>...</string>
            </property>
           </widget>
          </item>
          <item row="0" column="0">
           <widget class="QLabel" name="label_9">
            <property name="sizePolicy">
             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="maximumSize">
             <size>
              <width>50</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="font">
             <font>
              <weight>75</weight>
              <bold>true</bold>
             </font>
            </property>
            <property name="layoutDirection">
             <enum>Qt::LeftToRight</enum>
            </property>
            <property name="autoFillBackground">
             <bool>false</bool>
            </property>
            <property name="text">
             <string>Search</string>
            </property>
           </widget>
          </item>
         </layout>
        </item>
        <item>
         <layout class="QHBoxLayout" name="horizontalLayout_8">
          <item>
           <widget class="QPushButton" name="refreshComboBox">
            <property name="sizePolicy">
             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="minimumSize">
             <size>
              <width>75</width>
              <height>0</height>
             </size>
            </property>
            <property name="maximumSize">
             <size>
              <width>120</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="text">
             <string>Refresh Sources</string>
            </property>
           </widget>
          </item>
          <item>
           <widget class="QCheckBox" name="onlyVisibleCheckbox">
            <property name="layoutDirection">
             <enum>Qt::LeftToRight</enum>
            </property>
            <property name="text">
             <string>Only Visible Layers</string>
            </property>
           </widget>
          </item>
         </layout>
        </item>
        <item>
         <layout class="QGridLayout" name="gridLayout_4">
          <property name="topMargin">
           <number>10</number>
          </property>
          <item row="1" column="0">
           <widget class="QPushButton" name="updateSelectedButton">
            <property name="sizePolicy">
             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="minimumSize">
             <size>
              <width>110</width>
              <height>0</height>
             </size>
            </property>
            <property name="maximumSize">
             <size>
              <width>100</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="text">
             <string>Update Selected</string>
            </property>
           </widget>
          </item>
          <item row="1" column="1">
           <widget class="QPushButton" name="updateAllButton">
            <property name="minimumSize">
             <size>
              <width>110</width>
              <height>0</height>
             </size>
            </property>
            <property name="maximumSize">
             <size>
              <width>110</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="toolTip">
             <string>Update all the layers with sources found in Source List</string>
            </property>
            <property name="text">
             <string>Update All</string>
            </property>
           </widget>
          </item>
          <item row="1" column="2">
           <spacer name="horizontalSpacer_5">
            <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
            <property name="sizeType">
             <enum>QSizePolicy::Expanding</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
              <width>40</width>
              <height>20</height>
             </size>
            </property>
           </spacer>
          </item>
          <item row="2" column="0">
           <widget class="QLabel" name="sourceInformationLabel">
            <property name="maximumSize">
             <size>
              <width>120</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="font">
             <font>
              <weight>75</weight>
              <bold>true</bold>
             </font>
            </property>
            <property name="text">
             <string>Source Information</string>
            </property>
           </widget>
          </item>
          <item row="0" column="0">
           <widget class="QLabel" name="label_10">
            <property name="sizePolicy">
             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="maximumSize">
             <size>
              <width>110</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="font">
             <font>
              <weight>75</weight>
              <bold>true</bold>
             </font>
            </property>
            <property name="toolTip">
             <string>Update to the latest version</string>
            </property>
            <property name="text">
             <string>Automatic Options</string>
            </property>
           </widget>
          </item>
         </layout>
        </item>
        <item>
         <widget class="QTreeView" name="treeView">
          <property name="sizePolicy">
           <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
          </property>
          <property name="minimumSize">
           <size>
            <width>0</width>
            <height>0</height>
           </size>
          </property>
          <property name="maximumSize">
           <size>
            <width>16777215</width>
            <height>16777215</height>
           </size>
          </property>
          <property name="styleSheet">
           <string notr="true">selection-color: qradialgradient(spread:repeat, cx:0.5, cy:0.5, radius:0.077, fx:0.5, fy:0.5, stop:0 rgba(0, 169, 255, 147), stop:0.497326 rgba(0, 0, 0, 147), stop:1 rgba(0, 169, 255, 147));</string>
          </property>
          <property name="rootIsDecorated">
           <bool>false</bool>
          </property>
          <property name="sortingEnabled">
           <bool>true</bool>
          </property>
          <property name="animated">
           <bool>true</bool>
          </property>
          <attribute name="headerCascadingSectionResizes">
           <bool>true</bool>
          </attribute>
          <attribute name="headerDefaultSectionSize">
           <number>200</number>
          </attribute>
          <attribute name="headerShowSortIndicator" stdset="0">
           <bool>true</bool>
          </attribute>
         </widget>
        </item>
        <item>
         <widget class="QLabel" name="label_11">
          <property name="font">
           <font>
            <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
           <string>Log</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QTextEdit" name="textEdit"/>
        </item>
        <item>
         <spacer name="verticalSpacer_4">
          <property name="orientation">
           <enum>Qt::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
            <width>20</width>
            <height>40</height>
           </size>
          </property>
         </spacer>
        </item>
       </layout>
      </widget>
     </widget>
    </item>
   </layout>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>

1 个答案:

答案 0 :(得分:2)

您假设使用以下代码:

self.dockWidget.treeView = TreeView(self.dockWidget.treeView)

正在替换Qt Designer创建的QTreeView,因为不,您只创建了另一个QTreeView,它是原始QTreeView的子代。

您的逻辑类似于:

x = 10
y = x
x = 100

您认为它的y值为100,但显然不是。


在这种情况下,解决方案是推广小部件,有关更多信息,请检查以下内容:

考虑到您的文件必须具有以下结构:

├── main.py
├── treeview.py
├── utility_core_dockwidget_base.ui
└── utility_core_dockwidget.py

main.py

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon, QStandardItemModel
from PyQt5.QtWidgets import QApplication, QMainWindow, QDockWidget, QListWidget, QTextEdit, QTreeView,QSizePolicy

from utility_core_dockwidget import UtilityDockWidget


class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        title = "Dockable Application"
        top, left, width, height = 400, 400, 600, 500

        icon = "icon.png"

        self.setWindowTitle(title)
        self.setGeometry(top, left, width, height)
        self.setWindowIcon(QIcon("icon.png"))

        self.textEdit = QTextEdit()
        self.setCentralWidget(self.textEdit)
        self.dockAble()
        self.populateTreeView()

    def dockAble(self):
        self.dock = UtilityDockWidget()
        self.addDockWidget(Qt.RightDockWidgetArea, self.dock)
        self.dock.treeView.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

    def populateTreeView(self):
        print("here")
        model = self.createTreeViewLayerModel(self.dock.treeView)
        self.dock.treeView.setModel(model)

        for i in range(1, 10):
            layerName = f"LayerName {i}"
            visibility = "Visible"
            layerId = i
            self.addTreeViewItem(model, layerName, visibility, layerId)

    def createTreeViewLayerModel(self, parent):
        model = QStandardItemModel(0, 3, parent)
        model.setHeaderData(0, Qt.Horizontal, "Layer Name")
        model.setHeaderData(1, Qt.Horizontal, "Visibility")
        model.setHeaderData(2, Qt.Horizontal, "Layer ID")

        return model

    def addTreeViewItem(self, model, layerName, visibility, layerId):
        model.insertRow(0)
        model.setData(model.index(0, 0), layerName)
        model.setData(model.index(0, 1), visibility)
        model.setData(model.index(0, 2), layerId)


if __name__ == "__main__":
    import sys

    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec())

treeview.py

from PyQt5 import QtCore, QtWidgets


class TreeView(QtWidgets.QTreeView):
    def mousePressEvent(self, event):
        if event.type() == QtCore.QEvent.MouseButtonPress:
            if event.button() == QtCore.Qt.LeftButton:
                print("Left click")
            elif event.button() == QtCore.Qt.RightButton:
                print("Right click")
            elif event.button() == QtCore.Qt.MiddleButton:
                print("Middle click")
        super(TreeView, self).mousePressEvent(event)

utility_core_dockwidget_base.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>utilityDockWidgetBase</class>
 <widget class="QDockWidget" name="utilityDockWidgetBase">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>660</width>
    <height>807</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Utility</string>
  </property>
  <widget class="QWidget" name="dockWidgetContents">
   <layout class="QHBoxLayout" name="horizontalLayout_7">
    <item>
     <widget class="QTabWidget" name="tabWidget_2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
      <property name="minimumSize">
       <size>
        <width>200</width>
        <height>500</height>
       </size>
      </property>
      <property name="currentIndex">
       <number>0</number>
      </property>
      <widget class="QWidget" name="tab_5">
       <attribute name="title">
        <string>Layer Source Changer</string>
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_7">
        <item>
         <layout class="QGridLayout" name="gridLayout_2">
          <property name="topMargin">
           <number>6</number>
          </property>
          <item row="1" column="0">
           <widget class="QLabel" name="label_8">
            <property name="font">
             <font>
              <weight>75</weight>
              <bold>true</bold>
             </font>
            </property>
            <property name="text">
             <string>Source List</string>
            </property>
           </widget>
          </item>
          <item row="0" column="1" colspan="2">
           <widget class="QLineEdit" name="searchBar">
            <property name="sizePolicy">
             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="maximumSize">
             <size>
              <width>10000</width>
              <height>16777215</height>
             </size>
            </property>
           </widget>
          </item>
          <item row="1" column="1">
           <widget class="QComboBox" name="layerSourceList">
            <property name="sizePolicy">
             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="minimumSize">
             <size>
              <width>250</width>
              <height>0</height>
             </size>
            </property>
            <property name="maximumSize">
             <size>
              <width>10000</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="font">
             <font>
              <family>MS Shell Dlg 2</family>
             </font>
            </property>
            <property name="editable">
             <bool>false</bool>
            </property>
           </widget>
          </item>
          <item row="1" column="2">
           <widget class="QPushButton" name="browseNewSource">
            <property name="maximumSize">
             <size>
              <width>35</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="text">
             <string>...</string>
            </property>
           </widget>
          </item>
          <item row="0" column="0">
           <widget class="QLabel" name="label_9">
            <property name="sizePolicy">
             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="maximumSize">
             <size>
              <width>50</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="font">
             <font>
              <weight>75</weight>
              <bold>true</bold>
             </font>
            </property>
            <property name="layoutDirection">
             <enum>Qt::LeftToRight</enum>
            </property>
            <property name="autoFillBackground">
             <bool>false</bool>
            </property>
            <property name="text">
             <string>Search</string>
            </property>
           </widget>
          </item>
         </layout>
        </item>
        <item>
         <layout class="QHBoxLayout" name="horizontalLayout_8">
          <item>
           <widget class="QPushButton" name="refreshComboBox">
            <property name="sizePolicy">
             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="minimumSize">
             <size>
              <width>75</width>
              <height>0</height>
             </size>
            </property>
            <property name="maximumSize">
             <size>
              <width>120</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="text">
             <string>Refresh Sources</string>
            </property>
           </widget>
          </item>
          <item>
           <widget class="QCheckBox" name="onlyVisibleCheckbox">
            <property name="layoutDirection">
             <enum>Qt::LeftToRight</enum>
            </property>
            <property name="text">
             <string>Only Visible Layers</string>
            </property>
           </widget>
          </item>
         </layout>
        </item>
        <item>
         <layout class="QGridLayout" name="gridLayout_4">
          <property name="topMargin">
           <number>10</number>
          </property>
          <item row="1" column="0">
           <widget class="QPushButton" name="updateSelectedButton">
            <property name="sizePolicy">
             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="minimumSize">
             <size>
              <width>110</width>
              <height>0</height>
             </size>
            </property>
            <property name="maximumSize">
             <size>
              <width>100</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="text">
             <string>Update Selected</string>
            </property>
           </widget>
          </item>
          <item row="1" column="1">
           <widget class="QPushButton" name="updateAllButton">
            <property name="minimumSize">
             <size>
              <width>110</width>
              <height>0</height>
             </size>
            </property>
            <property name="maximumSize">
             <size>
              <width>110</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="toolTip">
             <string>Update all the layers with sources found in Source List</string>
            </property>
            <property name="text">
             <string>Update All</string>
            </property>
           </widget>
          </item>
          <item row="1" column="2">
           <spacer name="horizontalSpacer_5">
            <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
            <property name="sizeType">
             <enum>QSizePolicy::Expanding</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
              <width>40</width>
              <height>20</height>
             </size>
            </property>
           </spacer>
          </item>
          <item row="2" column="0">
           <widget class="QLabel" name="sourceInformationLabel">
            <property name="maximumSize">
             <size>
              <width>120</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="font">
             <font>
              <weight>75</weight>
              <bold>true</bold>
             </font>
            </property>
            <property name="text">
             <string>Source Information</string>
            </property>
           </widget>
          </item>
          <item row="0" column="0">
           <widget class="QLabel" name="label_10">
            <property name="sizePolicy">
             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="maximumSize">
             <size>
              <width>110</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="font">
             <font>
              <weight>75</weight>
              <bold>true</bold>
             </font>
            </property>
            <property name="toolTip">
             <string>Update to the latest version</string>
            </property>
            <property name="text">
             <string>Automatic Options</string>
            </property>
           </widget>
          </item>
         </layout>
        </item>
        <item>
         <widget class="TreeView" name="treeView">
          <property name="sizePolicy">
           <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
          </property>
          <property name="minimumSize">
           <size>
            <width>0</width>
            <height>0</height>
           </size>
          </property>
          <property name="maximumSize">
           <size>
            <width>16777215</width>
            <height>16777215</height>
           </size>
          </property>
          <property name="styleSheet">
           <string notr="true">selection-color: qradialgradient(spread:repeat, cx:0.5, cy:0.5, radius:0.077, fx:0.5, fy:0.5, stop:0 rgba(0, 169, 255, 147), stop:0.497326 rgba(0, 0, 0, 147), stop:1 rgba(0, 169, 255, 147));</string>
          </property>
          <property name="rootIsDecorated">
           <bool>false</bool>
          </property>
          <property name="sortingEnabled">
           <bool>true</bool>
          </property>
          <property name="animated">
           <bool>true</bool>
          </property>
          <attribute name="headerCascadingSectionResizes">
           <bool>true</bool>
          </attribute>
          <attribute name="headerDefaultSectionSize">
           <number>200</number>
          </attribute>
          <attribute name="headerShowSortIndicator" stdset="0">
           <bool>true</bool>
          </attribute>
         </widget>
        </item>
        <item>
         <widget class="QLabel" name="label_11">
          <property name="font">
           <font>
            <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
           <string>Log</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QTextEdit" name="textEdit"/>
        </item>
        <item>
         <spacer name="verticalSpacer_4">
          <property name="orientation">
           <enum>Qt::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
            <width>20</width>
            <height>40</height>
           </size>
          </property>
         </spacer>
        </item>
       </layout>
      </widget>
     </widget>
    </item>
   </layout>
  </widget>
 </widget>
 <customwidgets>
  <customwidget>
   <class>TreeView</class>
   <extends>QTreeView</extends>
   <header>treeview.h</header>
  </customwidget>
 </customwidgets>
 <resources/>
 <connections/>
</ui>

获取以下信息:

enter image description here