有这样的情况,对于我的程序,我需要一个自定义的标题栏。我做到了 -
- 添加
QFrame
并更改了它的颜色 - 我为此添加了一个按钮
QFrame
,它将执行所需的功能。
现在一个问题。我需要编写这个TitleBar
,以便只有它可以伸展。如果你centralwidget
在一个网格(gridLayout
)上排列 ' ' ,事实证明它是TitleBar
排列的,一切都很好,但是我添加了另一个小部件(例如,一个按钮)并TitleBar
立即变小了 5 倍,并且按钮拉伸到全屏。
所以我尝试通过添加TitleBar
到小部件并组成这个小部件来做到这一点,但它不会拉伸
如果你需要一个.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>652</width>
<height>412</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<property name="styleSheet">
<string notr="true">#centralWidget {
border-image: url(:/img/wallpaper.jpg);
}
#applemenu {
border-image: url(:/img/mbar_logo.png);
}
#applemenu:pressed {
border-image: url(:/img/clickedbut.jpg);
}
#menu {
background-color: rgb(233, 187, 223);
}</string>
</property>
<widget class="QWidget" name="centralWidget">
<widget class="QWidget" name="widget" native="true">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>651</width>
<height>31</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="menubar">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>21</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>21</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(233, 187, 223)</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="applemenu">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>18</width>
<height>18</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string/>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>