Qt5设计师 的布局管理器的使用例子。
2016-06-05 15:58
651 查看
由于人需求,需要自及布局一个聊天界面。
首先新建一个widget,放入两个widget,设置布局为 水平布局器。
widget2内放入webview也要设置为水平布局。(否则无法撑开)
widget1较为复杂,顶部放入widget(设置水平布局)里面放入pushbutton剩余空白部分,放入horizontal spacer,一个像弹簧一样的东西 ,1.占位,2.不让控件变性。
放入一个textbrowser用作聊天记录的显示,再在下面放入一个 widget里面放pushbutton 用作一些选项如表情按钮等等(设置水平布局),设置Horizontal spacer,下面再 放入textedit 用于输入文字,再在下面放入widget,用于一些按钮,比如发送按钮(设置水平布局,加入horizontal spacer),.
设置左边一个子widget整体为 vertical layout.基本成型。
每个控件的layout是什么名字,都可以在 设计器的右下角属性里面查看。
我们还需要setstretch,设置控件在布局内所占比例。
void Form1::m_initLayout()
{
//|整体
this->ui->horizontalLayout->setStretch(0,5);
this->ui->horizontalLayout->setStretch(1,1);
//|左侧
this->ui->verticalLayout->setStretch(0,1);
this->ui->verticalLayout->setStretch(1,5);
this->ui->verticalLayout->setStretch(2,1);
this->ui->verticalLayout->setStretch(3,3);
this->ui->verticalLayout->setStretch(4,1);
}
下面是设计器的xml
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form1</class>
<widget class="QWidget" name="Form1">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>745</width>
<height>665</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget_3" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTextBrowser" name="textBrowser"/>
</item>
<item>
<widget class="QWidget" name="widget_4" native="true">
<property name="minimumSize">
<size>
<width>71</width>
<height>10</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_4">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_5">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTextEdit" name="textEdit"/>
</item>
<item>
<widget class="QWidget" name="widget_5" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>78</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_6">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QWebView" name="webView">
<property name="url">
<url>
<string>about:blank</string>
</url>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header>QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
最后运行结果:
首先新建一个widget,放入两个widget,设置布局为 水平布局器。
widget2内放入webview也要设置为水平布局。(否则无法撑开)
widget1较为复杂,顶部放入widget(设置水平布局)里面放入pushbutton剩余空白部分,放入horizontal spacer,一个像弹簧一样的东西 ,1.占位,2.不让控件变性。
放入一个textbrowser用作聊天记录的显示,再在下面放入一个 widget里面放pushbutton 用作一些选项如表情按钮等等(设置水平布局),设置Horizontal spacer,下面再 放入textedit 用于输入文字,再在下面放入widget,用于一些按钮,比如发送按钮(设置水平布局,加入horizontal spacer),.
设置左边一个子widget整体为 vertical layout.基本成型。
每个控件的layout是什么名字,都可以在 设计器的右下角属性里面查看。
我们还需要setstretch,设置控件在布局内所占比例。
void Form1::m_initLayout()
{
//|整体
this->ui->horizontalLayout->setStretch(0,5);
this->ui->horizontalLayout->setStretch(1,1);
//|左侧
this->ui->verticalLayout->setStretch(0,1);
this->ui->verticalLayout->setStretch(1,5);
this->ui->verticalLayout->setStretch(2,1);
this->ui->verticalLayout->setStretch(3,3);
this->ui->verticalLayout->setStretch(4,1);
}
下面是设计器的xml
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form1</class>
<widget class="QWidget" name="Form1">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>745</width>
<height>665</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget_3" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTextBrowser" name="textBrowser"/>
</item>
<item>
<widget class="QWidget" name="widget_4" native="true">
<property name="minimumSize">
<size>
<width>71</width>
<height>10</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_4">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_5">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTextEdit" name="textEdit"/>
</item>
<item>
<widget class="QWidget" name="widget_5" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>78</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_6">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QWebView" name="webView">
<property name="url">
<url>
<string>about:blank</string>
</url>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header>QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
最后运行结果:
相关文章推荐
- QT 自己制作IDE工具
- Qt: 调色板QPalette类用法详解(附实例、源码)
- QT windows平台安装
- Qt5.5
- Qt实现自定义QGraphicsItem,实现了一个闪烁的圆,和闪烁的文字
- Qt元对象机制浅析
- 在QT的界面工程中添加一个简单的线程socket通信
- 交叉编译百度开放云的MQTT-c时遇到的问题总结
- Qt5 QRegExp正则替换文本
- QT元对象系统简介
- vs+qt5.6 控制台输出
- QT与数据库的远程连接
- Qt简单编程--获取编辑器Text Edit的光标行文本
- QT常见错误
- QT数据库连接池的实现
- QT查询数据库中的数据在tableview显示
- Qt学习二:移动无边框窗体
- Qt学习一:基本程序Hello World!
- Qt信号和槽连接方式的选择
- Log4Qt