c++ - QTabWidget 内容不展开

标签 c++ xml user-interface qt5 qt-designer

附件是我的问题的 QT Designer 示例。我的目标是让里面的任何内容(特别是 lineEdit)扩展到 QTabWidget 的最右边

如果您注意到我在图片中选择了选项卡,它说当前没有布局(如上面的红色禁止吸烟符号所示)。 当我尝试使用选项卡上方的按钮向其添加布局时(水平、垂直、网格、表单等...),无论我做什么都不会更改选项卡布局,但改为更改最顶层的小部件布局,这是我不想要的,因为这使 QTabWidget 能够接受任何大小的窗口。

我尝试为选项卡中的元素提供水平和垂直布局,认为这可能有效,但如我的下一张图片所示,它也不起作用。我的预感是因为该选项卡没有布局,其中的任何布局都不会得到尊重。

QTabWidget Attempt With Layout On Items Within Tab

感谢任何帮助。我已经花了好几个小时,但我一辈子都弄不明白...!

QTabWidget Not Expanding Example Image

下面是 UI XML:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>xMarket</class>
 <widget class="QWidget" name="xMarket">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>737</width>
    <height>421</height>
   </rect>
  </property>
  <property name="sizePolicy">
   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
    <horstretch>0</horstretch>
    <verstretch>0</verstretch>
   </sizepolicy>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <property name="layoutDirection">
   <enum>Qt::LeftToRight</enum>
  </property>
  <layout class="QHBoxLayout" name="horizontalLayout">
   <item>
    <widget class="QTabWidget" name="xMarketTabWidget">
     <property name="layoutDirection">
      <enum>Qt::LeftToRight</enum>
     </property>
     <widget class="QWidget" name="tab">
      <attribute name="title">
       <string>Tab 1</string>
      </attribute>
      <widget class="QLineEdit" name="lineEdit">
       <property name="geometry">
        <rect>
         <x>240</x>
         <y>30</y>
         <width>113</width>
         <height>21</height>
        </rect>
       </property>
      </widget>
      <widget class="QLabel" name="label">
       <property name="geometry">
        <rect>
         <x>150</x>
         <y>30</y>
         <width>59</width>
         <height>16</height>
        </rect>
       </property>
       <property name="text">
        <string>Search:</string>
       </property>
      </widget>
     </widget>
     <widget class="QWidget" name="tab_2">
      <attribute name="title">
       <string>Tab 2</string>
      </attribute>
     </widget>
    </widget>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections/>
</ui>

最佳答案

要在选项卡上设置布局,首先需要选择其父选项卡小部件。

您可以通过在对象Inspector中的名称中选择它来执行此操作(即,在示例中单击 xmarkettabwidget ),或者只需单击其选项卡栏中的适当标签。父选项卡小部件周围必须有一个选择矩形,然后您才能在其中一个选项卡上设置布局。

完成后,您可以单击设计器工具栏上的“水平布局”或“在网格中布局”按钮来为您的选项卡设置适当的布局。但请注意,在您可以在其上设置布局之前,一个选项卡必须至少有一个子小部件 - 对于空选项卡,布局按钮将全部禁用。

关于c++ - QTabWidget 内容不展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27446113/

相关文章:

c++ - 如何在 Cuda 编程中对矩阵进行逐元素指数运算

java - Android创建没有源代码的库项目

java - 线程在中断或停止后不会停止

java - 使用 XML 简单框架反序列化包含 CDATA 的元素列表

java - 程序在调用时未绘制 GUI

java - 为什么我的标签和按钮没有显示在 JFrame 中?

c++ - 嗅探 QWebsocket 服务器 - 客户端通信

c++ - 了解算法解决方案

c++ - C++ 开发人员可以在诺基亚 N900 上使用什么从麦克风捕获实时音频?

android - 如何减少 RecyclerView 中 CardView 中卡片之间的空间?