1、使用dateEdit,并设置初始日期为系统日期
首先在ui中布置dateEdit
控件:
在mainwindow.h中添加头文件:
#include <QDateEdit>
在mainwindow.cpp
中设置其属性:
2、Table widget使用
(1) 使用方法:
首先在ui界面中布置Table widget
到需要的位置
在mainwindow.cpp
中按情况添加下列代码:
//设置表格列数
ui->tableWidget->setColumnCount(11);
//设置表格行数
ui->tableWidget->setRowCount(2);
//插入属性名
ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<u8"日期"<<u8"时间"<<u8"坐标");
//整行选中的方式
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
//禁止修改
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
//设置为可以选中单个
ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
//显示列表头
ui->tableWidget->verticalHeader()->setVisible(true);
//插入数据
ui->tableWidget->setItem(0,0,new QTableWidgetItem(tr("2020-9-10")));
ui->tableWidget->setItem(0,1,new QTableWidgetItem(tr("12:03:12")));
ui->tableWidget->setItem(0,3,new QTableWidgetItem(tr("(20,200)")));
ui->tableWidget->setItem(1,0,new QTableWidgetItem(tr("2020-9-10")));
ui->tableWidget->setItem(1,1,new QTableWidgetItem(tr("15:23:32")));
ui->tableWidget->setItem(1,3,new QTableWidgetItem(tr("(50,120)")));
ui->tableWidget->selectRow(0);
//设置列宽
ui->tableWidget ->setColumnWidth(0, 200);
ui->tableWidget ->setColumnWidth(1, 200);
ui->tableWidget ->setColumnWidth(2, 157);
(2)在表格中添加中文报错
点击 工具——>选项——>文本编辑器
这两项改为图中的两项,点击apply
,然后确定。
设置完以后,发现插入属性名的时候,使用tr("时间")
会乱码。
解决方法有两种:
第一种: 在上方的代码中已经给出,将tr("时间")
改为 u8"
时间"就可以了
ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<u8"日期"<<u8"时间");
如果仅仅是符号乱码,则除了上面的方法,也可以试着将中文符号改为英文符号使用。
第二种:
QStringLiteral("日期");
3、使用stacked widget实现按钮分页
首先在ui界面找到stacked widget
布置到软件界面后,stacked widget
默认有两个子界面
右边找到控件,右击:
选择插入页来增加页面,这里我一共四个页面。然后放置4个按钮,用于控制分页变换。
打开到mainwindow.h
,添加头文件:
#include <QMainWindow>
#include <QStackedWidget>
#include <QWidget>
#include <QDateEdit>
指针获取stacked widget
和四个分页对象,以及声明四个按钮功能:
public:
QStackedWidget *stacked1;
QWidget *page;
QWidget *page_1;
QWidget *page_2;
QWidget *page_3;
public slots:
void btn1();
void btn2();
void btn3();
void btn4();
打开mainwindow.cpp
文件:
//属性设置
//初始页面
ui->stacked1->setCurrentIndex(0);
//四个界面的背景颜色
ui->page->setStyleSheet ("background-color: rgb(255, 255, 255);");
ui->page_1->setStyleSheet ("background-color: rgb(255, 255, 255);");
ui->page_2->setStyleSheet ("background-color: rgb(255, 255, 255);");
ui->page_3->setStyleSheet ("background-color: rgb(255, 255, 255);");
使用槽连接按钮与功能:
connect(ui->btn1, SIGNAL(clicked()), this, SLOT(btn1()));
connect(ui->btn2, SIGNAL(clicked()), this, SLOT(btn2()));
connect(ui->btn3, SIGNAL(clicked()), this, SLOT(btn3()));
connect(ui->btn4, SIGNAL(clicked()), this, SLOT(btn4()));
接着在在外部写点击的函数的功能:
//setCurrentIndex()括号中的是页面号,页面从0开始,页面顺序与ui界面放置的顺序一致
void MainWindow::btn1()
{ ui->stacked1->setCurrentIndex(0);
}
void MainWindow::btn2()
{ ui->stacked1->setCurrentIndex(1);
}
void MainWindow::btn3()
{ ui->stacked1->setCurrentIndex(2);
}
void MainWindow::btn4()
{ ui->stacked1->setCurrentIndex(3);
}
这样就完成了每个按钮跳转对应的页面了。
4、把上面这些都组合起来
界面1:
界面2、3是空的就不放了。
界面4:
表格里的数据都是我瞎写的。