(90) 完工图 :
++以下开始记录 设计细节 :
++
++
++
(91)记录 splitter 分隔条的使用:
++记录对应的搭建源码:
#ifndef UI_WIDGET_H
#define UI_WIDGET_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QFrame>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QSplitter>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_Widget
{
public:
QHBoxLayout * horizontalLayout;
QSplitter * splitter;
QFrame * frame;
QFrame * frame_2;
void setupUi(QWidget *Widget)
{
if (Widget->objectName().isEmpty())
Widget->setObjectName(QString::fromUtf8("Widget"));
Widget->resize(523, 339);
horizontalLayout = new QHBoxLayout(Widget); //为主窗体采用水平布局
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
splitter = new QSplitter(Widget); //对,生成的是水平分隔条
splitter->setObjectName(QString::fromUtf8("splitter"));
splitter->setOrientation(Qt::Horizontal);
frame = new QFrame(splitter);
frame->setObjectName(QString::fromUtf8("frame"));
frame->setFrameShape(QFrame::StyledPanel);
frame->setFrameShadow(QFrame::Plain);
frame->setLineWidth(2);
splitter->addWidget(frame); //把左 frame 添加入 splitter
frame_2 = new QFrame(splitter);
frame_2->setObjectName(QString::fromUtf8("frame_2"));
frame_2->setFrameShape(QFrame::StyledPanel);
frame_2->setFrameShadow(QFrame::Plain);
frame_2->setLineWidth(2);
splitter->addWidget(frame_2); //把右 frame 添加入 splitter
horizontalLayout->addWidget(splitter); //把分隔条 splitter 添加到主窗体的布局中
//可见,分隔条相当于容器,隐身的容器;也相当于布局,可以接收子容器,还可以被放入布局中
retranslateUi(Widget);
QMetaObject::connectSlotsByName(Widget);
} // setupUi
void retranslateUi(QWidget *Widget)
{
Widget->setWindowTitle(QCoreApplication::translate("Widget", "Widget", nullptr));
} // retranslateUi
};
namespace Ui {
class Widget: public Ui_Widget {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_WIDGET_H
(92)填充按钮:
++填充完的左侧布局如图:
(93)依次给出按钮的代码实现:
++
++实现都差不多。下略。重在理解
++
++
++
++
++
++
++
++
++
++
++
++
(94)
谢谢