zoukankan      html  css  js  c++  java
  • Qt Designer 修改窗体大小改变控件位置

    一.新建一个窗体

    用qt designer 新建一个QWidget窗体, 在窗体中右键

    选择布局, 发现布局是选择不了的,这个是因为窗体里面没有添加控件, 任意添加空间后便可选择 右键-- 布局-- 水平布局/垂直布局

    二. 添加控件

    我们添加一个group box 控件, 然后 右键 选择 布局 -- 垂直布局

    在添加一个horizontalLayout, 再给horizontalLayout里面添加两个button按钮

    向group box 里面添加一个label 和 botton

    然后在group box 的里面选择右键 -- 布局 -- 水平布局

    三. 添加spacers效果 

    我们给group box 里面的两个控件直接添加一个horizontalSpacer

    给group box 和horizontalLayout 直接添加一个verticalSpacer

    在这里说明下spacers 缩放类型 sizeType

    Expanding : 可自行增大和收缩

    Fixed:不能放大或缩小

    Minimum:不能小于sizeHint尺寸,可放大(若设置了最大尺寸)

    Maximum:不能放大,可缩小到允许的最小尺寸(若setMinimumSize(10,10)只能缩小到(10,10))

    Preferred:控件的sizeHint是他的Hint,可以放大或缩小

    四. 生成ui与py

    spacersLayouts.ui文件:

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <ui version="4.0">
      3  <class>Form</class>
      4  <widget class="QWidget" name="Form">
      5   <property name="geometry">
      6    <rect>
      7     <x>0</x>
      8     <y>0</y>
      9     <width>518</width>
     10     <height>429</height>
     11    </rect>
     12   </property>
     13   <property name="windowTitle">
     14    <string>Form</string>
     15   </property>
     16   <layout class="QVBoxLayout" name="verticalLayout">
     17    <item>
     18     <widget class="QGroupBox" name="groupBox">
     19      <property name="minimumSize">
     20       <size>
     21        <width>0</width>
     22        <height>100</height>
     23       </size>
     24      </property>
     25      <property name="maximumSize">
     26       <size>
     27        <width>16777215</width>
     28        <height>200</height>
     29       </size>
     30      </property>
     31      <property name="title">
     32       <string>分组</string>
     33      </property>
     34      <layout class="QHBoxLayout" name="horizontalLayout">
     35       <item>
     36        <widget class="QLabel" name="label">
     37         <property name="text">
     38          <string>左侧</string>
     39         </property>
     40        </widget>
     41       </item>
     42       <item>
     43        <spacer name="horizontalSpacer_2">
     44         <property name="orientation">
     45          <enum>Qt::Horizontal</enum>
     46         </property>
     47         <property name="sizeHint" stdset="0">
     48          <size>
     49           <width>40</width>
     50           <height>20</height>
     51          </size>
     52         </property>
     53        </spacer>
     54       </item>
     55       <item>
     56        <widget class="QPushButton" name="pushButton_2">
     57         <property name="text">
     58          <string>右侧</string>
     59         </property>
     60        </widget>
     61       </item>
     62      </layout>
     63     </widget>
     64    </item>
     65    <item>
     66     <spacer name="verticalSpacer">
     67      <property name="orientation">
     68       <enum>Qt::Vertical</enum>
     69      </property>
     70      <property name="sizeType">
     71       <enum>QSizePolicy::Expanding</enum>
     72      </property>
     73      <property name="sizeHint" stdset="0">
     74       <size>
     75        <width>20</width>
     76        <height>100</height>
     77       </size>
     78      </property>
     79     </spacer>
     80    </item>
     81    <item>
     82     <layout class="QHBoxLayout" name="horizontalLayout_2">
     83      <property name="spacing">
     84       <number>6</number>
     85      </property>
     86      <item>
     87       <spacer name="horizontalSpacer">
     88        <property name="orientation">
     89         <enum>Qt::Horizontal</enum>
     90        </property>
     91        <property name="sizeHint" stdset="0">
     92         <size>
     93          <width>40</width>
     94          <height>20</height>
     95         </size>
     96        </property>
     97       </spacer>
     98      </item>
     99      <item>
    100       <widget class="QPushButton" name="pushButton_3">
    101        <property name="text">
    102         <string>确定</string>
    103        </property>
    104       </widget>
    105      </item>
    106      <item>
    107       <widget class="QPushButton" name="pushButton_4">
    108        <property name="text">
    109         <string>取消</string>
    110        </property>
    111       </widget>
    112      </item>
    113     </layout>
    114    </item>
    115   </layout>
    116  </widget>
    117  <resources/>
    118  <connections/>
    119 </ui>
    生成的spacersLayouts.py 文件
     1 # -*- coding: utf-8 -*-
     2 
     3 # Form implementation generated from reading ui file 'spacersLayouts.ui'
     4 #
     5 # Created: Tue Mar 03 15:44:16 2015
     6 #      by: PyQt4 UI code generator 4.10.3
     7 #
     8 # WARNING! All changes made in this file will be lost!
     9 
    10 from PyQt4 import QtCore, QtGui
    11 
    12 try:
    13     _fromUtf8 = QtCore.QString.fromUtf8
    14 except AttributeError:
    15     def _fromUtf8(s):
    16         return s
    17 
    18 try:
    19     _encoding = QtGui.QApplication.UnicodeUTF8
    20     def _translate(context, text, disambig):
    21         return QtGui.QApplication.translate(context, text, disambig, _encoding)
    22 except AttributeError:
    23     def _translate(context, text, disambig):
    24         return QtGui.QApplication.translate(context, text, disambig)
    25 
    26 class Ui_Form(object):
    27     def setupUi(self, Form):
    28         Form.setObjectName(_fromUtf8("Form"))
    29         Form.resize(518, 429)
    30         self.verticalLayout = QtGui.QVBoxLayout(Form)
    31         self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
    32         self.groupBox = QtGui.QGroupBox(Form)
    33         self.groupBox.setMinimumSize(QtCore.QSize(0, 100))
    34         self.groupBox.setMaximumSize(QtCore.QSize(16777215, 200))
    35         self.groupBox.setObjectName(_fromUtf8("groupBox"))
    36         self.horizontalLayout = QtGui.QHBoxLayout(self.groupBox)
    37         self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
    38         self.label = QtGui.QLabel(self.groupBox)
    39         self.label.setObjectName(_fromUtf8("label"))
    40         self.horizontalLayout.addWidget(self.label)
    41         spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
    42         self.horizontalLayout.addItem(spacerItem)
    43         self.pushButton_2 = QtGui.QPushButton(self.groupBox)
    44         self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
    45         self.horizontalLayout.addWidget(self.pushButton_2)
    46         self.verticalLayout.addWidget(self.groupBox)
    47         spacerItem1 = QtGui.QSpacerItem(20, 100, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
    48         self.verticalLayout.addItem(spacerItem1)
    49         self.horizontalLayout_2 = QtGui.QHBoxLayout()
    50         self.horizontalLayout_2.setSpacing(6)
    51         self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
    52         spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
    53         self.horizontalLayout_2.addItem(spacerItem2)
    54         self.pushButton_3 = QtGui.QPushButton(Form)
    55         self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
    56         self.horizontalLayout_2.addWidget(self.pushButton_3)
    57         self.pushButton_4 = QtGui.QPushButton(Form)
    58         self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
    59         self.horizontalLayout_2.addWidget(self.pushButton_4)
    60         self.verticalLayout.addLayout(self.horizontalLayout_2)
    61 
    62         self.retranslateUi(Form)
    63         QtCore.QMetaObject.connectSlotsByName(Form)
    64 
    65     def retranslateUi(self, Form):
    66         Form.setWindowTitle(_translate("Form", "Form", None))
    67         self.groupBox.setTitle(_translate("Form", "分组", None))
    68         self.label.setText(_translate("Form", "左侧", None))
    69         self.pushButton_2.setText(_translate("Form", "右侧", None))
    70         self.pushButton_3.setText(_translate("Form", "确定", None))
    71         self.pushButton_4.setText(_translate("Form", "取消", None))
    72 
    73 
    74 if __name__ == "__main__":
    75     import sys
    76     app = QtGui.QApplication(sys.argv)
    77     Form = QtGui.QWidget()
    78     ui = Ui_Form()
    79     ui.setupUi(Form)
    80     Form.show()
    81     sys.exit(app.exec_())

    效果:

  • 相关阅读:
    构建之法阅读笔记03
    12.16第三周总结
    构建之法阅读笔记02
    12.9第二周周总结
    四则运算2
    构建之法阅读笔记01
    12.2第一周总结
    课堂练习-增加信息
    软件工程00
    web自动化测试---web页面元素的定位
  • 原文地址:https://www.cnblogs.com/dcb3688/p/4311138.html
Copyright © 2011-2022 走看看