qt中int64转时间_QDate,QDateTime和时间戳的转换(携带其
他开发随笔)
QDateTime 转
QDateTime time = QDateTime::currentDateTime(); //获取当前时间
int timeT = Time_t(); //将当前时间转为时间戳
以上知识代码获取来⾃:博主:草莓蛋糕⼈ 的:时间戳和QDateTime相互转换 。
QDate 转 时间戳
QDate 直接 转成 时间戳的⽅法并没有到,我的处理:
QDate date;
QString cutOffDate = QString::number(QDateTime::String("yyyy-MM-dd hh:mm:ss"), "yyyy-MM-dd
hh:mm:ss").toTime_t());
时间戳 转 QDate
时间戳 转 QDateTime
在QDate 或则 QDateTime数据上加上N天获得新的时间
QT 帮助⽂档到的⽅法如下QDate::addDays:
QDate QDate::addDays(qint64 ndays) const
Returns a QDate object containing a date ndays later than the date of this object (or earlier if ndays is negative).
Returns a null date if the current date is invalid or the new date is out of range.
获得QSqlQuery最后执⾏的sql语句
qDebug()<
Dialog窗⼝⾃定义按钮属性
主要代码:
done(QDialog::Accepted);//确定按钮这么设置
done(QDialog::Rejected);//取消按钮这么设置
//视觉效果为:点了按钮之后都会关闭本dialog窗体
//个⼈理解内部逻辑:accepted为确定了这个窗体的操作,rejected取消了这个窗体的操作
清空QTableWidget数据
void QTableWidget::clearContents()
只设置如上代码的话,只会清空内容,但是 表格的格⼦ 还在;我查阅了帮助⽂档 All Classes | Qt 5.9 后得到的意思是 上述的代码在清空数据后 发现 :
The table dimensions stay the same.
我觉得说的是“尺⼨不会变”,最后有浏览了⼀下该类的其他⽅法,做出如下代码操作:
tableW->setRowCount(0);
既然尺⼨不变,那我就让你的总⾏为变成0,诶!然后就得到想要的结果了。
QTableWidget双击信号
这个信号在以前⽤过,本来在这⾥也准备⽤的,但在学会了下⾯的⿏标右键信号之后 为了功能的集中 就没有⽤了。这⾥copy⾃⼰之前的代码和整理描述,⽅便⾃⼰以后的查阅。
⾸先呢 ⽤到的Signals为:
void
doubleClicked(const QModelIndex &index)
再次阅读了帮助⽂档呢 了解到 这个Signals来⾃于:
signals inherited from QAbstractItemView
然后上我⾃⼰的代码:
connect(ui->tblShowInfo, &QTableWidget::doubleClicked, this, &ShowArea::onDoubleSelect);
如上呢,链接好这⾥的表格tblShowInfo的信号和我们⾃⼰写的槽函数onDoubleSelect。之后就是在我们的槽函数中完成⾃⼰想要完成的操作就好了
QTableWidget⿏标右键信号
⾸先QTableWidget的⿏标右键发出的Signals是:
void
customContextMenuRequested(const QPoint &pos)
⾸先,我知道了,这个Signals是从QWiget 继承(inherit)下来的
是哪个信号知道了就改写相关的槽函数了,不查不知道,⽐想象中负责也并不是那么的负责(其实就是⾃⼰没搞清楚更深层次的代码知识),直接上我⾃⼰项⽬中的代码:
//头⽂件中代码:
private:
QMenu *rigthMenuRequest;
QAction *updateAct;
QAction *deleteAct;
public Q_SLOTS:
string转date的方法void onCustomContextMenuRequested(QPoint pos);
///类⽂件中代码:
//构造函数中:
rigthMenuRequest = new QMenu(ui->tblShowInfo);
updateAct = new QAction("修改",this);
deleteAct = new QAction("删除",this);
connect(ui->tblShowInfo, &QTableWidget::customContextMenuRequested, this,
&ShowContract::onCustomContextMenuRequested);
//槽函数
void ShowContract::onCustomContextMenuRequested(QPoint pos)
{undefined
qDebug()
rigthMenuRequest->addAction(deleteAct);
rigthMenuRequest->exec(QCursor::pos());
}
当然如果你想上⾯这样的话,你测试的时候会像我这般 发现⽆论你怎么在这个table上右键没有任何反应;
当我测试到这⾥我就知道,我在学习前辈的⽂档时⼜是囫囵吞枣了,返回去仔细查看后发现了关键点如下:
/*
* setContextMenuPolicy⽅法⽤来设置widget菜单项的显⽰⽅法,⽽CustomContextMenu是唯⼀与右键菜单
* 有关的参数,因此这⾥我们将菜单显⽰⽅法设置为该类型。如果widget设置为CustomContextMenu时,
* 当在数据上点击右键时就会发送customContextMenuRequested(const QPoint &pos)信号,
* 该信号还会捕捉到点击右键的位置,并⽤pos参数来存储。
*/
ui->tblShowInfo->setContextMenuPolicy(Qt::CustomContextMenu);
以上就是个⼈本次开发 ⽤到的右键功能的主要代码了,后续我按照⾃⼰的要求 处理了两个action对象的 triggered信号时间处理,在这就不表了。
该知识点:QTableWidget⿏标右键信号主要的知识参考来⾃前辈:@hebbely 的⽂章:Qt QTableWidget的⽤法 中的其中知识。
*特在此感谢 @hebbely 前辈的⽂章对我的帮助和指点。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论