用QT创建一个窗口后,需要将采集的数据用tablewidget表显示出来,但是QT界面就那么大,如何才能更好的装下,我需要采集到的数据从之前的dht11(温湿度)拓展到HC-sr04(超声波)和光敏,硬件显示宽度不够,可以考虑界面跳转的方法。
目录
页面跳转
创建窗口
右键选择需要添加页面跳转的工程,选择添加新文件,
依次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上看效果。