3-25~3-30工作总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Strong_HCyouth/article/details/88921140

1、在做需求前,先梳理思路:ui和逻辑分离

2、QPushButton按钮信号(按钮的鼠标事件与checkable无关)

clicked点击有反弹

pressed按下

released释放

toggled切换状态

3、指向QListWidget内部Item的遍历(智能指针)

由低到高

QlistWidgetItem* item = dynamic_cast<QListWidgetItem*>(list->itemWidget(list->item(i)));

4、指向QStackWidget内部的QListWidget遍历

QListWidget* page = dynamic_cast<QListWidget*>(m_stackWidget->widget(i));

5、QDataTime

将当前时间转换为特定格式:

QDataTime dataTime;

QString time = dataTime.currentDataTime().toString("yyyy-MM-dd hh:mm:ss");//MM要大写

将已知时间(毫秒)转换为年月日分秒

Qstring time = dataTime.fromMSecsSinceEpoch(131512222).toString("yyyy-MM-dd hh:mm:ss");

6、GetTickCount()

Qt使用window自带语法要加头文件#include <windows.h>

Qt替代方法:QTimer

开始计时start()   

重新计时restart() 

计算start和restart之间的时间间隔ms数elapsed()

计算距离时间t的毫秒数secsTo(QTime)

判断当前时间是否有效isValid()

7、调用另一个窗口

使用原始指针,生命周期同母窗口绑定,在母窗体析构时才调用自身close()

1)打开的仍是同一窗口:重写show()方法,添加api调用重新加载界面

2)其他操作的关闭改为hide(),避免释放内存,造成悬空指针

3)设置窗体属性setAttribute(Qt::WA_deleteOnClose)在内存释放后删除指针,避免悬空指针

4)activeWindow()激活窗口,使得打开的窗体自动置顶显示

8、在接口返回成功之后再做出相应前端操作

9、JS解析出的数据没有类型,具体类型要自己定义

10、屏蔽窗体关闭快捷键alt+F4,esc

/*外部接收到任何关闭命令,1正常关闭操作(直接关闭)不会屏蔽closeEvent 2其他关闭操作(alt+F4)会屏蔽closeEvent并隐藏窗口*/

void DispatchIssueFrom::Close()
{
    m_bClose = true;
    close();
}

bool DispatchIssueFrom::eventFilter(QObject *obj, QEvent *event)
{
    if (event->type() == QEvent::Close)
    {
        if (!m_bClose){
            event->ignore();
            this->hide();
            return true;
        }
    }

}

猜你喜欢

转载自blog.csdn.net/Strong_HCyouth/article/details/88921140