柚子快报邀请码778899分享:QT常用代码及资料

http://www.51969.com/

常用代码

键盘监听

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

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

柚子快报邀请码778899分享:QT常用代码及资料

http://www.51969.com/

查看原文