qt 创建一个包含两按钮,且安装和自定义控件间没有间距

在 Qt 中创建一个包含两个按钮且按钮之间没有间距的自定义控件,你可以使用 QHBoxLayoutQVBoxLayout(取决于你希望按钮是水平排列还是垂直排列),并设置布局的间距为 0。以下是一个简单的示例,展示了如何创建一个水平布局,其中包含两个按钮,并且这两个按钮之间没有间距:

|---|-----------------------------------------------------------|
| | #include <QWidget> |
| | #include <QPushButton> |
| | #include <QHBoxLayout> |
| | |
| | // ... |
| | |
| | QWidget *createCustomWidget() { |
| | QWidget *customWidget = new QWidget; |
| | QHBoxLayout *layout = new QHBoxLayout(customWidget); |
| | |
| | // 设置布局间距为0 |
| | layout->setSpacing(0); |
| | layout->setContentsMargins(0, 0, 0, 0); // 设置布局的外边距也为0 |
| | |
| | QPushButton *button1 = new QPushButton("Button 1"); |
| | QPushButton *button2 = new QPushButton("Button 2"); |
| | |
| | layout->addWidget(button1); |
| | layout->addWidget(button2); |
| | |
| | return customWidget; |
| | } |
| | |
| | // ... |

在这个例子中,createCustomWidget 函数创建了一个新的 QWidget,并使用 QHBoxLayout 作为其布局。布局中的间距和外边距都被设置为 0,以确保按钮之间以及按钮和控件边界之间没有额外的空间。然后,两个 QPushButton 控件被添加到布局中。

你可以在你的主窗口或者其他容器中使用这个自定义控件。例如,你可以在你的主窗口的构造函数中这样使用它:

|---|--------------------------------------------------------------------|
| | #include "mainwindow.h" |
| | #include <QApplication> |
| | #include <QWidget> |
| | #include <QPushButton> |
| | #include <QHBoxLayout> |
| | |
| | MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { |
| | QWidget *centralWidget = new QWidget(this); |
| | setCentralWidget(centralWidget); |
| | |
| | QWidget *customControl = createCustomWidget(); |
| | centralWidget->setLayout(new QVBoxLayout); |
| | centralWidget->layout()->addWidget(customControl); |
| | } |
| | |
| | // ... |
| | // 之前定义的 createCustomWidget 函数 |
| | // ... |

在这个例子中,MainWindow 的中心部件被设置为一个新的 QWidget,它使用 QVBoxLayout 作为布局。然后,将之前创建的自定义控件添加到这个布局中。这样,主窗口就会显示两个紧密相连的按钮,它们之间没有间距。

相关推荐
ajassi20004 小时前
开源 C++ QT QML 开发(二)工程结构
linux·qt·qml
楼田莉子5 小时前
Qt开发学习——QtCreator深度介绍/程序运行/开发规范/对象树
开发语言·前端·c++·qt·学习
韩立学长6 小时前
【开题答辩实录分享】以《基于python的奶茶店分布数据分析与可视化》为例进行答辩实录分享
开发语言·python·数据分析
天若有情6736 小时前
C++空值初始化利器:empty.h使用指南
开发语言·c++
远远远远子6 小时前
类与对象 --1
开发语言·c++·算法
无敌最俊朗@6 小时前
C/C++ 关键关键字面试指南 (const, static, volatile, explicit)
c语言·开发语言·c++·面试
2401_831501736 小时前
Python学习之day03学习(文件和异常)
开发语言·python·学习
酷~6 小时前
C语言模拟面向对象编程方法之多态
c语言·开发语言
hui函数7 小时前
python全栈(基础篇)——day03:后端内容(字符串格式化+简单数据类型转换+进制的转换+运算符+实战演示+每日一题)
开发语言·后端·python·全栈
寻星探路7 小时前
Java EE初阶启程记09---多线程案例(2)
java·开发语言·java-ee