在 Qt 中創建一個包含兩個按鈕且按鈕之間沒有間距的自定義控件,你可以使用?QHBoxLayout
?或?QVBoxLayout
(取決于你希望按鈕是水平排列還是垂直排列),并設置布局的間距為 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
?作為布局。然后,將之前創建的自定義控件添加到這個布局中。這樣,主窗口就會顯示兩個緊密相連的按鈕,它們之間沒有間距。