QFramelessWidget 无边框窗口

QFramelessWidget是一个无框架的窗口小部件,它提供了一种在主窗口外绘制自定义窗口小部件的方法。在QFramelessWidget中添加多个组件时,有时候需要在这些组件中添加滚动条,以便用户可以滚动查看超出窗口可见区域的内容。

	// 添加垂直滚动条
    QScrollArea* scrollArea = new QScrollArea();
    scrollArea->setWidgetResizable(true);
    QWidget* content = new QWidget(scrollArea);
    QVBoxLayout* contentLayout = new QVBoxLayout(content);
    QVBoxLayout* layout = new QVBoxLayout();
    QHBoxLayout* horizontalLayout = new QHBoxLayout();
    layout->addWidget(pGroupTitle);
    pLayout = new QGridLayout;
    pLayout->addWidget(pGroupTitle, 0, 0, 1, 3);
    for (int i = 0; i < vInfoOutput.size(); i++)
        contentLayout->addWidget(vCheckBox[i]);
    scrollArea->setWidget(content);
    horizontalLayout->addWidget(cancelBtn);
    horizontalLayout->addWidget(okBtn);
    layout->addWidget(scrollArea);
    layout->addLayout(horizontalLayout);
    layout->setMargin(10);
    setLayout(layout);
 

QFramelessWidget 添加子部件只能通过布局管理器添加,注意不能给每个子部件都添加滚动条,这样效果跟没有添加滚动条差不多

通过新建一个临时的QWidget,在构造中传入QScrollArea对象,在临时的QWidget中添加要显示的子部件,在通过滚动条对象在临时的QWidget中添加滚动条scrollArea->setWidget(content);,最后将滚动条添加到QFramelessWidget 的布局器当中

QVBoxLayout

QVBoxLayout是Qt框架中的一个类,它提供了一种按垂直顺序排列组件的布局管理器。

以下是一些QVBoxLayout的常用接口:

  • addStretch():添加一个可伸缩空间。
  • addSpacing(int size):添加一个固定大小的间距。
  • setMargin(int margin):设置左、上、右、下的外边距,设置之后,他们的外边距是相同的。
  • setContentsMargins(int left, int top, int right, int bottom):设置外边距。
  • addWidget(QWidget *widget, int stretch=0, Qt::Alignment alignment=0):添加控件,默认垂直方向居中对齐。
  • setSpacing(int space):设置组件的间隔。
  • setStretch(int index, int stretch):设置组件的比例因子。

使用QVBoxlayout可以方便地将多个组件按照垂直方向排列,并且可以通过设置参数来控制组件的大小和位置。

QVBoxLayout 添加两个水平组件

QVBoxLayout *layout = new QVBoxLayout();
QHBoxLayout *horizontalLayout = new QHBoxLayout();
QPushButton *button1 = new QPushButton("Button 1");
QPushButton *button2 = new QPushButton("Button 2");
horizontalLayout->addWidget(button1);
horizontalLayout->addWidget(button2);
layout->addLayout(horizontalLayout);
 

在上述代码中,我们首先创建了一个QVBoxLayout对象,然后创建了一个QHBoxLayout对象,并将两个按钮控件添加到QHBoxLayout中。最后,我们使用addLayout()方法将QHBoxLayout添加到QVBoxLayout中。
这样,两个水平按钮控件将会水平排列在一个QVBoxLayout中。

在上述代码中,我们首先创建了一个QVBoxLayout对象,然后创建了一个QHBoxLayout对象,并将两个按钮控件添加到QHBoxLayout中。在QFramelessWidget中添加多个组件时,有时候需要在这些组件中添加滚动条,以便用户可以滚动查看超出窗口可见区域的内容。通过新建一个临时的QWidget,在构造中传入QScrollArea对象,在临时的QWidget中添加要显示的子部件,在通过滚动条对象在临时的QWidget中添加滚动条。
一,新建一个基于对话框的工程Ex081122。 二,在上面增加一个滚动条控件,并为其关联一个控制型的变量m_scroll。 三,在CEx081122Dlg::OnInitDialog的初始化函数加上如下代码: m_scroll.SetScrollRange(0,100); m_scroll.SetScrollPos(0); 四,利用类向导为主对话框增加WM_HSCROLL消息的响应函数。 void CEx081122Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) if(SB_LINERIGHT == nSBCode) {//点击右键头 int iCurPos = pScrollBar->GetScrollPos(); pScrollBar->SetScrollPos(iCurPos+1); CString strTitle ; strTitle.Format("滚动条的值是:%d",iCurPos+1); SetWindowText(strTitle); else if( SB_THUMBPOSITION == nSBCode ) {//拖动 pScrollBar->SetScrollPos(nPos); CString strTitle ; strTitle.Format("滚动条的值是:%d",nPos); SetWindowText(strTitle); CDialog::OnHScroll(nSBCode, nPos, pScrollBar); 五,ctrl+F5是看运行效果。
QVBoxLayout* vLayout = new QVBoxLayout(tasksDetailWidget); QLabel* taskNumLabel = new QLabel(QStringLiteral("), tasksDetailWidget); //先初始化widget 并设置好布局 taskListWidget = new QWidget; taskListLayout = new QVBoxLayout(taskListWidget); taskListLayout-&gt.
实现窗体有两种方法第一一可以自定义代码去确定滚动区域和滚动窗口 例如 ` QScrollArea *scrollArea = new QScrollArea; //创建滚动区域由;QWidget *sw = new QWidget()创建一个内容显示窗口 scrollArea->setWidget(sw);滚动区域和内容窗口绑定` scr...
要在 Element Plus 的 Tree 组件添加纵向滚动条,可以使用 CSS 样式来设置容器的高度和滚动属性。具体步骤如下: 1. 在 Tree 组件的外层容器上添加一个固定高度和 overflow 属性为 auto 的样式,例如: ```html <template> <div class="tree-container"> <el-tree :data="data"></el-tree> </template> <style> .tree-container { height: 300px; overflow: auto; </style> 2. 确保 Tree 组件的高度小于容器的高度,这样才会出现纵向滚动条。 通过以上步骤,就可以在 Element Plus 的 Tree 组件添加纵向滚动条了。需要注意的是,如果 Tree 组件的高度大于容器的高度,那么就不会出现滚动条
1>生成失败。 1>D:\Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(1127,5): error MSB6006: “link.exe”已退出,代码为 1104。 1>LINK : fatal error LNK1104: 无法打开文件“kernel32.lib” 1> 0 个警告 1> 2 个错误
Qt项目实战四:FTP上传/下载工具 乱码问题尝试设置一下传输时的格式 确保两边格式保持一致 Qt项目实战四:FTP上传/下载工具 沈云580: 大佬,请问下我上传之后的文件的文件名变成了乱码,然后点击打开链接到了了浏览器,下载功能用不了是什么原因啊?