QT页面之间的跳转以及表的初始化

用QT创建一个窗口后,需要将采集的数据用tablewidget表显示出来,但是QT界面就那么大,如何才能更好的装下,我需要采集到的数据从之前的dht11(温湿度)拓展到HC-sr04(超声波)和光敏,硬件显示宽度不够,可以考虑界面跳转的方法。

目录

页面跳转

创建窗口

添加页面跳转

tablewidget表初始化


页面跳转

创建窗口

右键选择需要添加页面跳转的工程,选择添加新文件,

依次QT->QT设计师界面->choose

这里的模版随便选,需要就加上,啥都不用就Widget,下一步

输入类名,随便选,不要中文

完成后会生成.cpp .h  .ui文件,

添加页面跳转

跳到主函数,加上新添加的头文件

打开mainwindow.ui主函数的ui界面,添加一个Push button 跳转按键

鼠标将Push button拖到画布上,可以重命名,右键转到槽

添加代码

datawight *dataw=new datawight;  //给窗口2创建一个对象  datawight是另一个窗口当时要选的类
this ->hide();                //this是当前窗体(窗口1)的指针,关闭
dataw ->show();              //窗口2显示出来
this ->hide();   //当前窗口    //再关闭一次,可以不要

okk,现在已经可以通过主窗口跳转的窗口二了,现在加上窗口二跳转回来

打开窗口二的.cpp文件加上窗口一的头文件,当然.h文件加上也可以

同样的步骤,打开窗口二的ui界面添加按键,转到槽。

选择clicked(),ok->

将窗口二页面的跳转头文件加上

 MainWindow *mainwin=new MainWindow;  //给主窗口创建一个对象
  this->close();                //this是当前窗体(窗口2)的指针,关闭
 mainwin ->show();              //窗口1显示出来

this->close();   //关闭当前窗口      诶!这里改成了关闭窗口哦,不是隐藏,直接干掉

完成!

tablewidget表初始化

打开刚创建datawight.ui,将Table widget拖进来,大小自定义,重新取个名字。

在datawight.h文件中添加一个函数,便于管理, 

转到.cpp函数,初始化时引用这个函数,在dataviewshow函数中添加

ui->yjbdataWidget->setColumnCount(5);  //设置表中的元素个数

    QStringList horizontalList;
    horizontalList << "ID";      //表头的名字
    horizontalList << "温度";
    horizontalList << "湿度";
    horizontalList << "sr04";
    horizontalList << "时间";
    ui->yjbdataWidget->setHorizontalHeaderLabels(horizontalList);

    ui->yjbdataWidget->horizontalHeader()->setSectionResizeMode(4, QHeaderView::Fixed);
    ui->yjbdataWidget->setColumnWidth(0, 80);  // 设置一列的宽度为 80 像素
    ui->yjbdataWidget->setColumnWidth(1, 80);
    ui->yjbdataWidget->setColumnWidth(2, 80);
    ui->yjbdataWidget->setColumnWidth(3, 80);
    ui->yjbdataWidget->setColumnWidth(4, 180);

添加完毕。编译烧录到A53上看效果。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt中,页面跳转通常是通过使用StackedWidget和QPushButton来实现的。StackedWidget是一个可以包含多个页面的小部件,每个页面都是一个QWidget。QPushButton用于触发页面切换。 以下是一个简单的示例代码,演示如何在Qt中实现页面跳转: ```cpp #include <QApplication> #include <QPushButton> #include <QStackedWidget> #include <QWidget> int main(int argc, char *argv[]) { QApplication a(argc, argv); // 创建两个QWidget作为页面 QWidget *page1 = new QWidget(); QWidget *page2 = new QWidget(); // 创建一个StackedWidget并添加页面 QStackedWidget *stackedWidget = new QStackedWidget(); stackedWidget->addWidget(page1); stackedWidget->addWidget(page2); // 创建两个QPushButton用于切换页面 QPushButton *button1 = new QPushButton("Page 1"); QPushButton *button2 = new QPushButton("Page 2"); // 连接按钮单击信号和槽函数,实现页面切换 QObject::connect(button1, &QPushButton::clicked, [=]() { stackedWidget->setCurrentIndex(0); }); QObject::connect(button2, &QPushButton::clicked, [=]() { stackedWidget->setCurrentIndex(1); }); // 创建一个父QWidget并设置布局 QWidget *window = new QWidget(); QVBoxLayout *layout = new QVBoxLayout(); layout->addWidget(button1); layout->addWidget(button2); layout->addWidget(stackedWidget); window->setLayout(layout); window->show(); return a.exec(); } ``` 在这个示例中,我们创建了两个QWidget作为页面,然后将它们添加到StackedWidget中。我们还创建了两个QPushButton用于切换页面,然后将它们添加到一个垂直布局中。最后,我们将StackedWidget和按钮布局添加到一个父QWidget中,并显示它。 当我们单击按钮时,对应的页面显示在StackedWidget中。我们使用StackedWidget的setCurrentIndex函数来设置当前页面的索引。在这个示例中,页面1的索引是0,页面2的索引是1。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值