qt分裂器布局代码实现

一:什么是分裂器布局呢?

分裂器布局(Splitter Layout)是一种用户界面布局方式,用于将窗口或容器分割成多个可调整大小的区域。这些区域之间通过一个或多个可拖动的分隔条(即分裂器)分隔开来,用户可以通过拖动分隔条来改变各个区域的大小。

分裂器布局通常用于需要动态调整界面元素大小的情况,比如文件浏览器、编辑器等。它允许用户根据自己的需要调整不同区域的大小,以更好地适应当前的工作环境或需求。

在 GUI 库中,比如 Qt、wxWidgets 等,都提供了分裂器布局的支持。通常,通过创建一个分裂器对象,并向其添加子部件(比如面板、窗口、部件等),就可以实现分裂器布局。用户可以通过鼠标拖动分隔条来调整子部件的大小,以便更好地布局界面。

总的来说,分裂器布局是一种灵活且常用的界面布局方式,可以提高用户界面的可调整性和适应性。如下图就是一个分裂器布局,怎么去创建这么一个分裂器呢?

方法一:直接拖拽控件进行布局。

1.首先添加两个widget,这时候两个控件是透明的,我们可以右键选择样式表进行颜色添加,RGB(红绿蓝)是一种用的颜色表示方式,其中红色、绿色和蓝色的值分别用一个介于 0 和 255 之间的数字来表示。在 CSS 中,可以使用 background-color 属性来指定元素的背景颜色。如果你想在 CSS 中使用 RGB 表示颜色,你可以像这样写:

         background-color: rgb(红色值, 绿色值, 蓝色值); 

其中,红色值、绿色值和蓝色值分别是介于 0 和 255 之间的整数,用逗号分隔。例如,如果你想指定红色为 100、绿色为 150、蓝色为 200 的颜色,你可以这样写:

         background-color: rgb(100, 150, 200); 

2.然后选中这两个控件,进行竖直分裂器布局,整个控件进行竖直布局

3.再添加一个控件,这里用到的是,Graphics View,ctrl+左键选中这个控件和垂直分裂器进行分裂器水平布局,最后整体垂直布局。

//----------------为了防止生成ui后,有些控件被压缩看不见,可以添加最小宽度---------------

最后生成的效果如下图:

方法二:使用代码进行分裂器的布局

下图是我写得一个示例图:箭头出可以拉升改变布局,就像ppt一样的界面布局。接下来,让我们看看这是咋实现的吧!

首先要知道,分裂器有两种布局,一个是水平布局,一个是垂直布局,以下就是创建两种布局的方法:(这个函数有两个参数,第一个是布局的样式,第二个this 实际上是指向当前窗口部件的指针,表示将创建的分割器添加到当前窗口部件中。这样做是为了确保分割器能够正确地在当前窗口部件中显示和布局。

//创建分裂器水平布局
    QSplitter* pHSplitter = new QSplitter(Qt::Horizontal,this);

竖直分裂器:

//注意参数pHSplitter,表示的是父指针
    QSplitter* pVSplitter = new QSplitter(Qt::Vertical,pHSplitter);

开始写项目:

思路如下:

整体分为左边和右边,左边和右边使用的是分裂器水平布局,右边又是两个控件组成,使用分裂期垂直布局。

左边创建一个QWidget控件,可以设置它的属性(颜色,加载时最小宽度):

 QWidget* pLeftWidget =  new QWidget(this);
    //设置它的颜色
    pLeftWidget->setStyleSheet("background-color:gsb(54,54,54)");
    //设置他的最小宽度
    pLeftWidget->setMinimumWidth(100);

然后在创建一个分裂期水平布局,将这个控件添加到这个分裂器当中去:

//创建分裂器水平布局
    QSplitter* pHSplitter = new QSplitter(Qt::Horizontal,this);
//然后我们将这个widget添加到分裂器当中去
    pHSplitter->addWidget(pLeftWidget);

其次写右边,创建分裂器垂直布局,再创建两个控件,将这两个控件添加到这个布局当中去。

//右侧的竖直分裂器
   //注意参数pHSplitter,表示的是父指针
    QSplitter* pVSplitter = new QSplitter(Qt::Vertical,pHSplitter);

    //在拖动到位并且弹起鼠标之再显示分割条

    pVSplitter->setOpaqueResize(false);

    QWidget* pRightTopWidget = new QWidget(this);
    pRightTopWidget->setStyleSheet("background-color:(145,145,145)");

    //在创建一个控件
    QTextBrowser* pRightBottom = new QTextBrowser(this);
    pRightBottom->setStyleSheet("background-color:gsb(0,0,0)");

    pVSplitter->addWidget(pRightTopWidget);
    pVSplitter->addWidget(pRightBottom);

最后将右边这个分裂器布局添加到最开始创建的分裂期水平布局当中去。

 pHSplitter->addWidget(pVSplitter);

    //布局添加分裂器
    PHLay->addWidget(pHSplitter);

    //设置整体布局
    setLayout(PHLay);

这里解释一下最后一个函数的作用。

//设置整体布局  setLayout(PHLay);

setLayout() 是 QWidget 类的成员函数,用于设置窗口部件的布局管理器。通过将之前创建的布局管理器 PHLay 传递给 setLayout() 函数,可以将该布局管理器应用到当前窗口部件上。

这样做的效果是,整个窗口部件的布局会受到 PHLay 所管理的布局的影响。换句话说,窗口部件中的所有子部件(包括之前添加的分割器 pHSplitter)都会按照 PHLay 所定义的布局规则进行排列和调整。

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要实现Qt Widget中添加控件,可以按照以下步骤进行操作。 1. 首先,在Qt项目中打开你想要添加控件的Widget文件,一般为.ui文件。 2. 在Qt Designer中选择你想要添加控件的位置,比如一个按钮。 3. 在Qt Designer的左侧工具栏中,选择你要添加的控件的类型,比如QLineEdit(文本输入框)。 4. 将该控件拖拽到你在第二步中选择的位置。 5. 可以通过右键单击控件,在弹出的选项中选择“布局”来调整控件的位置和大小。 6. 在Qt Widget的头文件(.h文件)中,添加一个成员变量来引用新添加的控件,以便在代码中访问并操作它。 7. 在Qt Widget的源文件(.cpp文件)中,找到Widget的构造函数(或其他初始化函数),在其中实例化新添加的控件。 ```cpp QLineEdit *lineEdit = new QLineEdit(this); // 创建一个新的QLineEdit控件 // 可以设置控件的一些属性,比如位置和大小 lineEdit->setGeometry(100, 100, 200, 30); // 添加控件事件的监听,比如按下按钮后的行为 connect(lineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(onTextChanged(const QString &))); ``` 8. 在Qt Widget的源文件中,实现你在第7步中连接的槽函数。这将定义控件与其他部分的交互逻辑。 ```cpp void Widget::onTextChanged(const QString &text) { // 在文本改变时执行的代码 qDebug() << "Text changed: " << text; } ``` 通过这些步骤,你就可以在Qt Widget中添加控件并实现相应的功能了。当你运行应用程序时,新添加的控件将出现在GUI中,并响应用户的操作。 ### 回答2: Qt是一个跨平台的C++应用程序开发框架,可以用于开发各种GUI界面程序。在Qt中,可以使用控件来构建用户界面,如按钮、文本框、标签等。 要在Qt Widget中添加一个控件,需要进行以下步骤: 1. 创建一个新的Qt Widget项目,打开Qt Creator软件并选择新建项目。 2. 在项目向导中选择Qt Widgets Application,并输入项目名称和存储位置。 3. 在项目构建界面中选择默认配置,然后点击下一步。 4. 在类创建界面中,选择基类为QWidget,并输入类名称和包含的头文件的名称,然后点击下一步。 5. 在界面设计中,可以看到一个空白的QWidget,我们可以在此基础上添加控件。 6. 在设计中,选择左侧的控件库,如QToolBox,然后选择要添加的控件,如按钮。 7. 在窗口上单击并拖动鼠标来创建按钮的大小。 8. 可以在属性编辑中修改控件的属性,如按钮的文本、大小、位置等。 9. 为按钮添加信号和槽函数,以便在按钮被点击时执行相应的操作。 10. 保存并编译项目,然后运行程序,即可在窗口上看到添加的控件。 以上是一个简单的Qt Widget添加控件的步骤,通过使用Qt Creator提供的界面设计和属性编辑,可以方便地添加和配置各种控件来构建用户界面。在实际的应用程序开发中,可以根据需要添加不同类型的控件,并通过信号和槽机制来实现控件之间的交互和响应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值