QT
冷月醉雪
这个作者很懒,什么都没留下…
展开
-
QOperatingSystemVersion
查看更多:https://www.yuque.com/docs/share/db0ae0e5-9169-4387-b80f-f89381429c79?#原创 2019-12-25 12:09:12 · 747 阅读 · 0 评论 -
Go语言中append函数返回值必须有变量接收的原因探究
append函数返回更新后的slice(长度和容量可能会变),必须重新用slice的变量接收,不然无法编译通过 slice的底层是数组,一片连续的内存,slice变量只是存储该slice在底层数组的起始位置、结束位置以及容量 它的长度可以通过起始位置和结束位置算出来,容量也可以通过起点位置到底层数组的末端位置的长度算出来,多个slice可以指向同一个底层数组。...原创 2017-11-14 16:08:01 · 977 阅读 · 0 评论 -
QLineEdit光标问题
QLineEdit的光标当失去焦点后仍然显示的问题: 在lineedit和其它按钮之间切换焦点时,注意lineedit的设置有顺序,否则当失去焦点时仍有光标闪,或者得到焦点无光标。 使lineedit有效:lineedit->setEnabled (true); lineedit->setFocus (); 使lineedit无效:l...原创 2017-11-29 08:53:32 · 5122 阅读 · 0 评论 -
QPushButton 文字居左
QPushButton{text-align: left;}参考:https://www.yuque.com/docs/share/a9eb7a41-068c-4c3a-af5f-a18f4f7a08ec原创 2017-11-29 08:54:29 · 4562 阅读 · 0 评论 -
QComboBox 样式
QComboBox { border: 1px solid #bebebe; padding: 1px 18px 1px 3px; font: normal normal 16px "Microsoft YaHei"; color: #555555; background: transparent;}QComboBox:editable{ background: transp...原创 2017-11-29 11:02:21 · 5133 阅读 · 1 评论 -
QRadioButton样式
QRadioButton{ spacing: 2px; color: white;}QRadioButton::indicator { width: 45px; height: 30px;}QRadioButton::indicator:unchecked { image: url(:/Images/switchOff);}QRadioButt...原创 2017-11-23 17:14:10 · 4578 阅读 · 0 评论 -
QProcess与外部程序的调用
Qt提供的QProcess类,可用于启动外部程序,并与之交互通信。1.启动外部程序的两种方式 (1)一体式:void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite) 外部程序启动后。将随主...原创 2017-12-07 16:24:09 · 1569 阅读 · 0 评论 -
QLoacalserver 进程间的通信
1. 建立一个QLocalServer实例 m_server2. 进行listen : m_server->listen("servername")3. 当有连接到来时,QLocalServer会发送netConnection()信号,所以进行信号连接, 在init()函数中: connect(m_server, SIGNAL(newCon...原创 2018-03-29 11:12:31 · 301 阅读 · 0 评论 -
QSS透明窗体
·UI模式的QSS设置 rgba(xxx,xxx,xxx,100); a就是透明度(alpha)的意思啦,0-255。 0则完全透明、255完全不透明,100就是半透明啦·代码设置 setWindowOpacity(n),n范围0.0~1.0,1.0完全不透明,全局设置setWindowFlags(Qt::FramelessWindowHint);...原创 2018-04-12 16:18:44 · 5103 阅读 · 0 评论 -
QElapsedTimer 计时器
QElapsedTimer提供了一种快捷的计算流逝时间的方法。它通常被用来计算两个事件或操作之间过去了多久。并且,该类的方法非常类似于我们之前讲过的QTime类的三个计时函数,所以,我们可以很快速的在使用这两个类的代码之间进行移植。但是,不像QTime,QElapsedTimer会尽可能的使用某种单调时钟。这也就意味着,没办法将QElapsedTimer对象转换成人类可读的时间格式。...原创 2018-04-18 20:28:46 · 9304 阅读 · 0 评论 -
QCefView
定义 QCefView是一个与Chrome嵌入式框架集成的Qt小部件。 您可以使用QCefView而无需编写任何与CEF代码相关的代码。 这个Qt小部件是分布在二进制模块和LGPL许可的。为什么使用QCefView 有一些用CEF开发的UI框架,比如Electron等。 但Electron与CEF封装在一起,您只能通过编写JavaScript代码来开发您的应用程序。 如果您...原创 2018-04-24 15:06:38 · 5048 阅读 · 4 评论 -
利用QPainter绘制各种图形
Qt的二维图形引擎是基于QPainter类的。QPainter既可以绘制几何形状(点、线、矩形、椭圆、弧形、弦形、饼状图、多边形和贝塞尔曲线),也可以绘制像素映射、图像和文字。此外,QPainter还支持一些高级特性,例如反走样(针对文字和图形边缘)、像素混合、渐变填充和矢量路径等。QPainter也支持线性变换,例如平移、旋转、错切和缩放。 本例子中利用QPainter类提供的...原创 2018-06-11 18:46:07 · 4383 阅读 · 0 评论 -
QImage
一些基本操作方法获取图像的首地址: const uchar *QImage::bits() const获取图像的总字节数 int QImage::byteCount() const获取图像每行字节数 int QImage::bytesPerLine() const 还可以这样计算(width:图像宽度,img.depth是图图像深度): i...原创 2018-06-11 18:50:30 · 17394 阅读 · 3 评论 -
(Qsettings) ini格式读写
QString ReadSettings(const QString& filepath, const QString& groupname, const QString& key){ QString ret; QSettings *setting = new QSettings (filepath, QSettings ::IniFormat); ...原创 2018-05-24 15:39:24 · 886 阅读 · 0 评论 -
QImage 与 cv::Mat 之间的相互转换
Qt 中处理图像主要用的是QImage类,OpenCV中主要用的是cv::Mat类。下面的两个函数可以用来实现这两个类相互转换。QImage cvMat2QImage(const cv::Mat& mat) { // 8-bits unsigned, NO. OF CHANNELS = 1 if(mat.type() == CV_8UC1) ...原创 2018-06-12 19:00:27 · 2308 阅读 · 0 评论 -
QPixmap的缓冲区
QPixmap可以很简单的在标签上贴图;例如:QPixmap p;p.load("1.png");label->setPixmap(p); 就这么简单,但是我今天突然发现个问题,就是:QPixmap p;p.load("1.png");label->setPixmap(p); p.load("2.png"); label->se...原创 2018-06-13 10:19:25 · 3139 阅读 · 0 评论 -
使用QPainter的drawPixmap()绘制多幅图片
众所周知,使用QLabel的setPixmap()就可以将图片显示出来,做视屏解码后显示也可以如此。但是为何我今天还要费力使用基函数drawPixmap()来做绘图?理由有这么些吧: ·使用QLabel很耗费CPU,播放画面过多有卡卡的感觉; ·drawPixmap()使用GPU处理,相对减轻了CPU的负担; 当然,今天这里,只是给出基本思路方法,并非对视频解...原创 2018-06-13 10:29:09 · 2223 阅读 · 0 评论 -
QImage的浅拷贝与深拷贝
首先简单说说什么是浅拷贝和深拷贝:浅拷贝就比如像引用类型,而深拷贝就比如值类型,即浅拷贝是共用一块内存的,而深拷贝是复制一份内容。 我们再来看看QImage类的几个构造函数:// 浅拷贝QImage(uchar * data, int width, int height, Format format)// 浅拷贝QImage(const uchar * data, i...原创 2018-06-13 10:32:46 · 10802 阅读 · 0 评论 -
类型自动转换引起的误解——QString可以赋值数字1,也能直接与0比较
看以下代码,能编译通过void MainWindow::on_pushButton_clicked(){ QString str = "test"; if (str==0) { QMessageBox msgBox; msgBox.setText("The document has been modified."); msgB...原创 2018-06-21 10:33:20 · 711 阅读 · 0 评论 -
QString与中文,QString与std::wstring的相互转换(使用fromStdWString和u8关键字)
Qt的QString功能丰富,对非英语语言的支持也不是问题,但支持得不够直接。例如,像QString str("死亡使者赛维"); 这样直接用带中文的字符串进行构造,那么用QMessageBox显示str时将出现乱码。如果使用fromLocal8Bit、fromLatin1这样的函数,又依赖本地计算机的显示语言,所以它们不是好方法。 显式地使用宽字符(wchar_t)或...原创 2018-06-21 10:44:20 · 2663 阅读 · 0 评论 -
QWidget与HWND的互相转换
在编写Windows的应用程序时,我们有时不可避免地要与Windows平台固有的Win32 API打交道,但是Win32 API里面常常用到的HWND等诸多句柄QT并没有。QT作为一款优秀的跨平台GUI库,不可能未作考虑,那么需要互相转换的时候该如何做呢? HWND转QWidgetQWidget *myWidget;HWND hwnd;myWidget=QWidget::...原创 2018-06-13 16:21:46 · 2318 阅读 · 1 评论 -
Thread Support in Qt
QT提供线程支持在平台独立的线程类。一个安全线程的传递事件的方式,一个信号槽的链接在线程之中。这使得开发多线程容易。多线程程序也是一个有用的范例为不冻结用户界面情况下的耗时的操作。线程类Asynchronous Run<QtConcurrentRun>提供一个方式来运行一个函数在一个独立的线程Concurrent Filter and Filter-Reduce<QtCo...原创 2018-06-06 18:29:50 · 108 阅读 · 0 评论 -
QWaitCondition
该类提供一个情况变量来同步线程。 #include <QWaitCondition> 注意:该类所有的函数是线程安全的。 公共函数: QWaitCondition () ~QWaitCondition () bool wait ( QMutex * mu...翻译 2018-06-06 18:40:04 · 2515 阅读 · 1 评论 -
QString和QJsonObject的相互转化
For quick solution:// QString >> QJson QJsonObject getJsonObjectFromString(const QString jsonString){ QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonString.toLocal8Bit().dat...原创 2018-06-21 12:37:16 · 7577 阅读 · 0 评论 -
string与QString之间的转换
1.fromStdString直接转换string str;QString qstr;//从QString 到 std::stringstr = qstr.toStdString();//从std::string 到QStringqstr = QString::fromStdString(str);2.fromLocal8Bit(cstr.c_str())std::s...原创 2018-06-13 19:40:27 · 16187 阅读 · 0 评论 -
QStringLiteral(源代码里有一个通过构造函数产生的从const char*到QString的隐式转换,QStringLiteral字符串可以放在代码的任何地方,编译期直接生成utf16字符
QStringLieral是Qt5中新引入的一个用来从“字符串常量”创建QString对象的宏(字符串常量指在源码中由双引号包含的字符串)。在这篇博客我讲解释它的的内部实现和工作原理。提要 让我们从它的使用环境开始说起:假设你想要在Qt5中从字符串常量初始化一个QString对象,你应该这样: 大多数情况: (1)使用QStringLiteral(“某字符串...原创 2018-06-22 11:28:59 · 1247 阅读 · 0 评论 -
QString转换为LPTSTR(使用reinterpret_cast)
QString str = "CPU"; const wchar_t * str_cpu = reinterpret_cast<const wchar_t *>(str.utf16());//char * 转换为 wchar_t * 类型 QT QString, wchar_t *, TCHAR, CString和其他字符或字符串类型的转化//QString to...原创 2018-06-14 19:27:41 · 2453 阅读 · 0 评论 -
QString之simplified()用于读取数据、规范数据,非常方便
在工程项目开发中,遇到这么个问题:手工计入文件中的数据,每行有三个,前两个是数字,最后一个是标识,现在把这3个数据提取出来。 一提取就出现问题了:由于手工导入,数据间使用空白间隔,有可能是一个空格,有可能多个空格,怎么成功提取了?看Qt文档,终于找到这么个好用的函数。直接给干货吧QString fileName = QFileDialog::getOpenFileName(th...原创 2018-06-14 19:29:51 · 2556 阅读 · 0 评论 -
string与QString转换(string既可以是utf8,也可以是gbk)
AtUtf8.h#ifndef _QT_UTF8_H #define _QT_UTF8_H #include <QString> #include <string> using std::string; class AfUtf8 { public: // QString(Unicode) -> std::str...原创 2018-06-14 19:48:04 · 3619 阅读 · 0 评论 -
utf8格式源代码中的字符串,默认都会当作char来处理,除非用L""符号来修饰
原先QString("mystrr"),现在都不认了,必须都要加上L才行 原先:m_conn->put_HttpProxyAuthMethod("Basic"); 现在:m_conn->put_HttpProxyAuthMethod(L"Basic"); 同理:handle = m_conn->openFile(UUU(strRemote) ,L"w...原创 2018-06-22 16:47:23 · 367 阅读 · 0 评论 -
Codecs是以plugin的形式被调用的(显示中文的codec plugin文件是qcncodecs4.dll),可静态载入和动态载入
作为非英语国家人员开发的类库,QT有充分的理由优先考虑支持Unicode和各国自定义字库编码。大家也知道了QT对软件Internationalization有一套完整的开发模型,包括专门为此写的linguist程序。但是如果我们的软件只运行在中文系统下,最简单的方法是什么呢?最简单的方法,就是在main函数中调用QTextCodec::setCodecForTr( QTextCodec::code...原创 2018-06-22 16:52:23 · 454 阅读 · 0 评论 -
QMessageBox 中的 OK 按钮改为中文“确定”
有很多资料用于将 QMessageBox 的 OK 改为中文。但大多很麻烦。本文提供一个简便方法,用于定制 QMessageBox 的按钮,包括将其翻译成中文显示。 QMessageBox 对其内部的 Button 进行维护,用户可以使用 addButton() 方法,以及 removeButton() 方法添加或者移除按钮。每个 Button 都有个角色属性(enum QMess...原创 2018-06-23 10:32:43 · 4188 阅读 · 0 评论 -
QStringList与QString互转
QStringList fonts;fonts << "Arial" << "Helvetica" << "Times" << "Courier";QString str = fonts.join(","); QString str = "name1,path1;name2,p原创 2018-06-26 10:09:18 · 16544 阅读 · 0 评论 -
QString的不常见用法
QString str("Hello");QString str = "Hello";static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 };QString str(data, 4);QString str;str.resize(4);str[0] = QChar('U');str[1] = QChar...原创 2018-06-26 10:09:04 · 847 阅读 · 0 评论 -
QString转换成LPCWSTR
不知道大家用QT做什么程序,但应该还是Windows程序居多吧,仍免不了与WINAPI打交道。这就要求数据类型要与Windows一致,而QT的数据类型却是自成一体的。这就需要转换。比如我用到了LogonUser函数,其原型是: BOOL LogonUser( _In_ LPTSTR lpszUsername, _In_opt_ LPTSTR...原创 2018-06-26 10:08:35 · 5309 阅读 · 0 评论 -
判断QString是否为纯数字,查找自身最长重复子字符串
1.判断QString是否为纯数字bool IsDigitString(QString strSource){ bool bDigit = false; if (strSource.isEmpty()) { return bDigit; } QByteArray strByteArray = strSource.toLatin1(...原创 2018-06-26 10:07:49 · 1908 阅读 · 0 评论 -
QString::toWCharArray可以拷贝到宽字符串里
wchar_t * sourcepath=new wchar_t[MAX_PATH];int s1=str.toWCharArray(sourcepath); sourcepath[s1]=0;QString->string->wstring->LPCWSTRQFileInfo info("./records.db");std::string str = in...原创 2018-06-16 14:23:24 · 2698 阅读 · 1 评论 -
char和QChar(Unicode的编码与内存里的值还不是一回事)
char类型是c/c++中内置的类型,描述了1个字节的内存信息的解析。比如: char gemfield=’g’;那么在由gemfield标记的这块内存的大小就是1个字节,信息就是01100111,8位。再比如: char gemfield=’汉’; 那么由gemfield标记的这块内存的大小依然是1个字节,存储的信息是:0xBA,这是因为在...原创 2018-06-16 14:44:06 · 1396 阅读 · 0 评论 -
sqlite 查询数据 不用回调
int main( void ){ sqlite3 *db=NULL; char *zErrMsg = 0; int rc; //打开数据库连接 rc = sqlite3_open("zieckey.db", &db); if( rc ) { fprintf(stderr, "Can't open sqlite: %s...原创 2018-06-30 08:49:42 · 812 阅读 · 0 评论 -
qt数据库多线程问题的解决(QSqlDatabase只能在创建它的线程中使用)
Qt数据库由QSqlDatabase::addDatabase()生成的QSqlDatabase只能在创建它的线程中使用, 在多线程中共用连接或者在另外一个线程中创建query都是不支持的 假设有如下代码:bool openDatabase(){ QSqlDatabase db; QString connectionName = "sqlite"; db =...原创 2018-06-30 09:01:37 · 289 阅读 · 0 评论