欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > QT手写显示控件如QDockWidget,QTabWidget,QGroupBox组合

QT手写显示控件如QDockWidget,QTabWidget,QGroupBox组合

2025/5/7 1:11:45 来源:https://blog.csdn.net/zkmrobot/article/details/140951438  浏览:    关键词:QT手写显示控件如QDockWidget,QTabWidget,QGroupBox组合

在 Qt 中,你可以在 QDockWidget 中添加一个 QTabWidget,然后在其中一个选项卡上添加多个 QGroupBox。每个 QGroupBox 中包含几个 QPushButton、一个 QLabel 和两个 QLineEdit,并使用 QGridLayout 布局来排列这些控件。

以下是一个完整的示例代码,展示了如何实现这个布局:

#include <QApplication>
#include <QMainWindow>
#include <QDockWidget>
#include <QTabWidget>
#include <QWidget>
#include <QVBoxLayout>
#include <QGroupBox>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QGridLayout>class MainWindow : public QMainWindow {
public:MainWindow() {// Create central widget and set it as the central widget for the main windowQWidget *centralWidget = new QWidget(this);setCentralWidget(centralWidget);// Create a QDockWidgetQDockWidget *dockWidget = new QDockWidget("Dock Widget", this);addDockWidget(Qt::LeftDockWidgetArea, dockWidget);// Create a QTabWidget and set it to the dock widgetQTabWidget *tabWidget = new QTabWidget(dockWidget);dockWidget->setWidget(tabWidget);// Create the first tabQWidget *firstTab = new QWidget(tabWidget);tabWidget->addTab(firstTab, "First Tab");// Create a vertical layout for the first tabQVBoxLayout *vboxLayout = new QVBoxLayout(firstTab);// Add four QGroupBox widgets to the vertical layoutfor (int i = 0; i < 4; ++i) {QGroupBox *groupBox = new QGroupBox(QString("Group Box %1").arg(i + 1), firstTab);vboxLayout->addWidget(groupBox);// Create a QGridLayout for the group boxQGridLayout *gridLayout = new QGridLayout(groupBox);// Add buttons, label, and line edits to the grid layoutfor (int j = 0; j < 5; ++j) {QPushButton *button = new QPushButton(QString("Button %1").arg(j + 1), groupBox);gridLayout->addWidget(button, j, 0);  // Buttons in the first column}QLabel *label = new QLabel(QString("Label %1").arg(i + 1), groupBox);gridLayout->addWidget(label, 0, 1);  // Label in the first row, second columnQLineEdit *lineEdit1 = new QLineEdit(groupBox);gridLayout->addWidget(lineEdit1, 1, 1);  // Line Edit 1 in the second row, second columnQLineEdit *lineEdit2 = new QLineEdit(groupBox);gridLayout->addWidget(lineEdit2, 2, 1);  // Line Edit 2 in the third row, second column}setWindowTitle("QDockWidget with QTabWidget Example");resize(800, 600);}
};int main(int argc, char *argv[]) {QApplication app(argc, argv);MainWindow mainWindow;mainWindow.show();return app.exec();
}

代码解释

  1. 创建主窗口MainWindow 继承自 QMainWindow,是主应用程序窗口。

  2. 设置中央小部件:创建一个 QWidget 并将其设置为主窗口的中央小部件。

  3. 创建 QDockWidget

    • 使用 QDockWidget 创建一个停靠窗口,并将其添加到主窗口的左侧区域。
  4. 创建 QTabWidget

    • QDockWidget 中创建一个 QTabWidget 并设置为停靠窗口的内容。
  5. 创建第一个选项卡

    • 创建一个 QWidget 作为第一个选项卡,并将其添加到 QTabWidget
  6. 配置布局

    • 在选项卡上创建一个 QVBoxLayout,用于垂直排列 QGroupBox
    • 创建四个 QGroupBox,并将它们添加到垂直布局中。
    • 每个 QGroupBox 中使用 QGridLayout 进行内部布局。
  7. 添加控件到每个 QGroupBox

    • 每个 QGroupBox 内部包含五个 QPushButton、一个 QLabel 和两个 QLineEdit
    • 使用 QGridLayout 将这些控件按网格排列:按钮在第一列,标签和输入框在第二列的不同位置。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com