长期补充更新……
快捷键 | 说明 |
---|---|
F1 | 帮助文档 |
F4 | 头文件和cpp文件切换 |
F5 | 开始调试 |
Alt+shift+R | UI界面预览 |
Crtl+R | 运行 |
Ctrl+I | 缩进 |
Ctrl+/ | 添加或取消注释 |
getWMIC(const QString &cmd){
//获取cpu名称:wmic cpu get Name
//获取cpu核心数:wmic cpu get NumberOfCores
//获取cpu线程数:wmic cpu get NumberOfLogicalProcessors
//查询cpu序列号:wmic cpu get processorid
//查询主板序列号:wmic baseboard get serialnumber
//查询BIOS序列号:wmic bios get serialnumber
//查看硬盘:wmic diskdrive [where index=0] get serialnumber
QProcess p;
p.start(cmd);
p.waitForFinished();
QString result = QString::fromLocal8Bit(p.readAllStandardOutput());
return result;
}
void Widget::mousePressEvent(QMouseEvent *e)
{
if(e->button() == Qt::LeftButton )
offset=e->globalPos()-this->pos();
e->accept();
}
void Widget::mouseMoveEvent(QMouseEvent *e)
{
if(e->buttons() & Qt::LeftButton )
this->move(e->globalPos()-offset);
e->accept();
}
QPixmap pix;
pix.load(":/image/pix.png");
resize(pix.size());
setMask(pix.mask()); //为窗口设置遮罩
void Widget::paintEvent(QPaintEvent*)
{
QPainter painter(this);
painter.drawPixmap(0,0,QPixmap(":/image/pix.png");
}
QPushButton
{
background-color:rgba(255,255,255,100);
}
setWindowOpacity(0.5);
//设置无边框
setWindowFlags(Qt::FramelessWindowHint);
//设置背景透明
setAttribute(Qt::WA_TranslucentBackground);
QDesktopServices::openUrl(QUrl("http://www.baidu.com"));
QDesktopServices::openUrl(QUrl("file:///C:/文件路径"));
//或者
QUrl url("C:/文件路径");
url.setScheme("file");
QDesktopServices::openUrl(url);
#include "widget.h"
#include <QApplication>
#include <QSplashScreen>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPixmap pixmap(":/splash.png");
QSplashScreen splash(pixmap);
splash.show();
a.processEvents();
Widget w;
w.show();
splash.finish(&w);
return a.exec();
}
引用唯一应用程序对象的全局指针。它等价QCoreApplication::instance()函数返回的指针,在GUI应用程序中,它是指向QApplication实例的指针。
QApplication::style()->standardIcon(QStyle::SP_ComputerIcon);
将准备好的ico图标文件放置在项目文件夹下,
然后在.pro文件中添加:
VERSION = 1.0.0
RC_ICONS = app.ico
1.Qt Widget Application
将release模式编译生成的exe文件复制到一个空文件夹,如E:/hello,
然后从开始菜单打开 Qt 命令行,输入命令:cd /d E:\hello
然后使用 windeployqt 工具命令:windeployqt hello.exe
最后可以在E:\hello 文件夹里看到 windeployqt 工具自动复制的插件文件夹和 dll文件。这时候得到的就完整的 exe 程序发布集合。
2.QML Application
……
使用 windeployqt 工具命令:windeployqt helloqml.exe --qmldir D:\Qt\Qt5.5.1\5.5\mingw492_32\qml
–qmldir 是 Qt 安装文件里面的 qml 文件夹目录
……
除了使用多线程技术外,如果是循环等操作可以插入QCoreApplication::processEvents()函数
//推荐使用,rectangle取默认值只截取屏幕显示范围之内,需要截取屏幕显示之外内容需设置实际大小
QPixmap QWidget::grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))
QPixmap QScreen::grabWindow(WId window, int x = 0, int y = 0, int width = -1, int height = -1)
//过时,废弃
[static] QPixmap QPixmap::grabWidget(QObject *widget, const QRect &rectangle)
[static] QPixmap QPixmap::grabWindow(WId window, int x = 0, int y = 0, int width = -1, int height = -1)
常用的两种方法
1.使用QPdfWriter类
2.使用QPrinter类(即可输出到打印机,又可以输出为磁盘PDF格式文件)
使用Qt Webengine 和 JS 交互时,有时debug时正常,而release时报错。
尝试在pro文件中添加:
QTQUICK_COMPILER_SKIPPED_RESOURCES += resources/my_resource.qrc
这可以阻止Qt Quick编译器尝试为相应的JavaScript代码生成c++代码,以及从Qt资源文件中删除原始的JavaScript代码。
#pragma execution_character_set("utf-8")
int main(int argc,char*argv[])
{
QApplication a(argc,argv);
QTranslator trans;
trans.load("qt_zh_CN.qm",路径);
a.installTranslator(&trans);
return a.exec();
}
bool setFont(const QString &strPath) //strPath字体文件路径
{
int fontId = QFontDatabase::addApplicationFont(strPath);
if(fontId == -1)
{
//说明加载字体文件失败了,该字体不可用
return false;
}
QStringList fontFamily = QFontDatabase::applicationFontFamilies(fontId);
if(fontFamily.empty())
{
//说明从字体中获取字体簇失败了
return false;
}
QFont font(fontFamily.at(0));
qApp->setFont(font);
return true;
}