qt布局嵌套_QT向界面中嵌套新的界面

本文介绍了如何在QT中实现界面布局的嵌套,通过QHBoxLayout和QVBoxLayout创建复杂的窗口结构。首先在UI编辑器中添加布局,然后在MainWindow类中定义添加窗口的方法。接着创建自定义的myWidget类,并设置其背景色。在main函数中实例化myWidget并添加到主窗口。通过不断添加子布局和控件,实现了不同颜色区域的划分。完整代码可从提供的百度网盘链接获取。
摘要由CSDN通过智能技术生成

简单说下 想要实现的内容

我们有一个主窗口mainwindow,需要向其中放入新的界面,你可以自己定义里面内容。

大致的效果图如下

实现起来就是利用QT的layout布局 使用水平布局QHboxlayout或QVboxLayout

第一步,先进入ui编辑界面,加入一个水平或者垂直的布局(根据自己选则,我用水平)充满整个mainwindow

注意右边我更改了 QHBoxLayout的名称 为pHBoxLayout

然后运行一遍 ;(注意需要运行一遍 要不然类找不到pHBoxLayout 这个布局)

接着定义一个方法(向mainwindow增加窗口的方法) (mainwindow.cpp)

1 void MainWindow::putwidget(QWidget*widget)2 {3 ui->pHBoxLayout->addWidget(widget);4 }

新建一个class文件 定义为myWidget名称 inherent QObject和QWidget

在类名myWidget后面增加 :public QWidget

在myWidget中增加该窗口的背景色 区分其他区域

1 myWidget::myWidget()2 {3 this->setAttribute(Qt::WA_StyledBackground,true);4 this->setStyleSheet("background-color: rgb(255,255, 255)");5 }

在main函数中添加(main.cpp

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Qt的QWidget类来创建一个计算器界面,然后将其嵌入到你的主界面。以下是一个简单的示例: 1. 创建一个的QWidget类,作为你的计算器界面。你可以使用Qt的QGridLayout类来布局你的计算器按钮。 ```c++ class CalculatorWidget : public QWidget { Q_OBJECT public: CalculatorWidget(QWidget *parent = nullptr); ~CalculatorWidget(); private: QGridLayout *m_layout; QLineEdit *m_display; QPushButton *m_buttons[16]; }; ``` 2. 在CalculatorWidget的构造函数,创建布局和按钮,并将它们添加到布局。 ```c++ CalculatorWidget::CalculatorWidget(QWidget *parent) : QWidget(parent) { m_layout = new QGridLayout(this); m_display = new QLineEdit(this); m_display->setReadOnly(true); m_display->setAlignment(Qt::AlignRight); m_layout->addWidget(m_display, 0, 0, 1, 4); for (int i = 0; i < 16; ++i) { m_buttons[i] = new QPushButton(this); m_layout->addWidget(m_buttons[i], i / 4 + 1, i % 4); } // 设置按钮文本和大小 m_buttons[0]->setText("0"); m_buttons[1]->setText("1"); m_buttons[2]->setText("2"); m_buttons[3]->setText("3"); m_buttons[4]->setText("4"); m_buttons[5]->setText("5"); m_buttons[6]->setText("6"); m_buttons[7]->setText("7"); m_buttons[8]->setText("8"); m_buttons[9]->setText("9"); m_buttons[10]->setText("+"); m_buttons[11]->setText("-"); m_buttons[12]->setText("*"); m_buttons[13]->setText("/"); m_buttons[14]->setText("="); m_buttons[15]->setText("C"); for (int i = 0; i < 16; ++i) { m_buttons[i]->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); connect(m_buttons[i], &QPushButton::clicked, this, &CalculatorWidget::buttonClicked); } } ``` 3. 实现buttonClicked()槽函数来处理按钮点击事件。在这个函数,你可以根据用户的输入来更计算器的显示内容。 ```c++ void CalculatorWidget::buttonClicked() { QPushButton *button = qobject_cast<QPushButton *>(sender()); if (!button) { return; } QString text = button->text(); if (text == "C") { m_display->clear(); } else if (text == "=") { try { m_display->setText(QString::number(eval(m_display->text()))); } catch (std::exception &e) { m_display->setText(tr("Error")); } } else { m_display->setText(m_display->text() + text); } } ``` 4. 在你的主界面,创建一个QVBoxLayout,并将CalculatorWidget添加到其。 ```c++ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QVBoxLayout *layout = new QVBoxLayout(this); CalculatorWidget *calculator = new CalculatorWidget(this); layout->addWidget(calculator); QWidget *centralWidget = new QWidget(this); centralWidget->setLayout(layout); setCentralWidget(centralWidget); } ``` 这样,你的计算器界面就可以嵌入到你的Qt应用程序了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值