C++ Qt5学习笔记 2020.9.10(dateedit设置日期为系统日期,使用table widget及在table widget中插入中文报错和乱码,stacked widget实现分页切换)

44 篇文章 8 订阅

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:
在这里插入图片描述

表格里的数据都是我瞎写的。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值