QT常用代码及资料

常用代码

键盘监听

void keyPressEvent(QKeyEvent *event);

void GSMainWindow::keyPressEvent(QKeyEvent *event)
{
    if ((event->modifiers() & Qt::ControlModifier) != 0) {

        if ( event->key() == Qt::Key_N ) {
            onBtnOpenClick();
        } else if ( event->key() == Qt::Key_S ) {
            onBtnSaveClick();
        } else if ( event->key() == Qt::Key_R ) {
            onBtnWfemObsModeling();
        }
    } else if (event->key() == Qt::Key_Delete) {
        m_sectionView->onBtnDeleteClick();
    }
}

信号与槽

前面是发出消息的地方; 后面是根据消息处理数据的地方
connect(m_sectionView, SIGNAL(showStatusMessage(QString)), this, SLOT(onShowStatusMessage(QString)));


void GSMainWindow::onShowStatusMessage(QString message)
{
    statusBar()->showMessage(message);
}

发出消息的信号
signals:
    void showStatusMessage(QString message);

对话框弹出

#include <QMessageBox>

QWidget * Global::gMainWindow = nullptr;

GSMainWindow::GSMainWindow(QWidget *parent) : QMainWindow(parent)
{
    // 保存窗口指针
    Global::gMainWindow = this;



QString strInfo = "请选择两个相邻且有2个以上公共点的区域合并!";
QMessageBox::critical(Global::gMainWindow, "操作错误", strInfo);

对话框中的状态判断

void CFillConstantDialog::onClickBtnOK()
{
    m_strNewValue = lineEditNewValue->text();
    m_bDisplayValueText = checkBoxDisplayValueText->isChecked();

    accept();
}

void CFillConstantDialog::onClickBtnCancel()
{
    close();
}

判断数字是否为 NaN


    if (qIsNaN(dbValue) || qIsInf(dbValue)) {

    } else {
        accept();
    }

获取当前执行程序 的路径

QCoreApplication::applicationDirPath() 

获取绘图文字的宽高

QFontMetrics fm = painter->fontMetrics();

QString sMajorLabel = QString("%1").arg(i);
painter->drawText(QPointF(x-20,y), sMajorLabel);

x -= fm.width(sMajorLabel);
y -= fm.height()/2;

https://www.cnblogs.com/liuruoqian/p/12901565.html

https://www.iteye.com/blog/xiangjie88-825521

QT Creator 快捷键

.h 文件和对应.cpp 文件切换:F4

函数声明和定义切换:F2

代码注释取消注释:Ctrl + / (选中代码再按快捷键)

代码位置快速导航: Alt + 左方向键 / 右方向键

全局搜索: Ctrl + Shift + Find

帮助文档

官网文档
https://doc.qt.io/

QT5 GUI 图形
https://doc.qt.io/qt-5/qtgui-index.html

QAbstractGraphicsShapeItem
https://doc.qt.io/qt-5/qabstractgraphicsshapeitem.html

中文文档
https://www.qtdoc.cn/BookInfo.html

QT5 QPainter
https://doc.qt.io/qt-5/qpainter.html

QT5 案例和教程
https://doc.qt.io/qt-5/qtexamplesandtutorials.html

QT5 官方demo解析集
https://www.kancloud.cn/cloudcastle/qt5-demo/109860

QT 论坛
http://www.qtcn.org/bbs/thread-htm-fid-68.html

案例路径

D:\Qt\Examples\Qt-5.14.2\widgets\tools\plugandpaint

电子书

https://www.kancloud.cn/kancloud/qt-study-road-2/99441

posted @ 2021-08-31 11:49  lvye1221  阅读(16)  评论(0编辑  收藏  举报