随笔分类 - Qt
摘要:一、QTableWidget 有时需要设置表格的列宽样式,设置方式如下: // 设置竖直表头不可见 ui.tableWidget->verticalHeader()->setVisible(false); // 设置水平表头不可见 ui.tableWidget->horizontalHeader()
阅读全文
摘要:一些场景需要使用命令行来针对源码直接生成对应的 .ts 和 .qm 文件,主要过程如下: 1、lupdate.exe 生成 ts文件 ui文件需要将其编译成对应的 .h 头文件,以及其它的源码文件一起放在指定的目录下,然后使用 lupdate命令来生成对应的.ts文件,如: # 将自动递归检索 De
阅读全文
摘要:Qt 中通过 moveToThread 方式来实现的多线程之间数据交互一般是通过信号槽来进行的,信号槽不仅可以用于同一个线程中,也可以用于多线程之间,当用于多线程之间时,其连接方式为 Qt::QueuedConnection ,即队列连接。 多线程之间建立的信号槽主要是如下两个: 主线程发送信号:来
阅读全文
摘要:在虚拟机Ubuntu中安装 Qt5 ,整体的步骤和遇到问题的总结。 一、安装流程 在Qt网站上下载对应的 Linux 版本 Qt 历史版本下载地址 设置对应 .run 文件的权限,让其可被执行 sudo chmod +x qt-opensource-linux-x86-<xxxx>.run 启动安装
阅读全文
摘要:通过 VS 来开发 Qt 项目的过程中,整个Qt项目的编译需要如下几个过程: Uic > Rcc > Moc > 预处理 > 编译 > 汇编 > 链接 对比普通的 C++ 项目,Qt 多了 Uic > Rcc > Moc 这三步。 现在对 QT 项目所多出的三个编译过程进行分析: 一、Uic :Qt
阅读全文
摘要:Qt 中信号槽的连接方式,即: QObject::connect() 函数的第五个参数 Qt::ConnectionType,共有五种连接方式。 它决定了是否立刻将特定的信号传递给槽函数,还是将其放在队列中,稍后进行传递。 1. Qt::AutoConnection :自动连接(默认方式) 当第五个
阅读全文
摘要:Qt编译的 exe 程序执行时报错: 出现以上错误的原因是由于的系统环境路径缺失或者 exe 程序目录下缺少对应的 dll 导致。以上为缺少对应的 Qt platform plugin。在Qt 的安装目录下将 platforms 整个目录拷贝到 exe 所在目录下,即可执行。如果提示缺少对于的 xx
阅读全文
摘要:在Qt 中设置父控件 QWidget 的背景为一种颜色,此时其子控件QWidget 的背景默认是透明的,看起来会和父控件的背景色一样。 此时通过代码设置保持子控件 QWidget 的背景色为默认的颜色,而不是和父控件背景色相同。 this->setAutoFillBackground(true);
阅读全文
摘要:QDialog 因为有 exec() 函数为阻塞式的可以让 QDialog 成为模态的界面,但是 QMainWindow 创建的对象窗口只能使用 show() 来进行显示,无法直接让以 QMainWindow 的对象实现模态的效果。 如果要使 QMainWindow 的实例化对象能够实现模态的效果,
阅读全文
摘要:Qt 中的多线程除了通过继承 QThread 类,然后重写虚函数 run() 之外还有另一种方案:将要执行的复杂操作,放在一个继承自 QObject 的类中,然后使用 QObject::moveToThread(QThread*) 函数将工作对象的移动到创建的子线程中去执行。 一、子线程的实现 工作
阅读全文
摘要:Qt 中的多线程主要是为了防止复杂耗时的操作阻塞主线程,导致界面卡死的问题。可以通过继承 QThread 类后,重写 run() 函数来实现。 一、 定义继承自 QThread 的类 定义一个类继承自 QThread,并重写虚函数 run(),将耗时的操作放在 run()函数中,然后在主线程中来通过
阅读全文
摘要:QString 与 std::string 之间相互转换时如果存在中文的情况下会出现乱码的情况,此时可以通过如下的方式进行转换,来避免出现乱码 1. QString 转 std::string QString qstr = "Path 测试 中文路径find"; QByteArray byteArr
阅读全文
摘要:Qt实现多国语言的过程需要有以下几点: 代码中需要翻译的内容需要用 QObject::tr() 函数来包住。 UI上的字串只要让可翻译的选项被选中即可。 翻译时需要创建 .ts 文件,该文件实际上为xml文本,可以直接打开。 用Qt Linguist来打开以上的.ts文件并对需要的字串进行翻译。 翻
阅读全文
摘要:Qt 中的正则表达式常用 QRegExp 类 一、正则表达式的常用匹配符 ^test:匹配字符的开始 [^test]:表示除 t, e, s, t 以外的字符 $:表示匹配字符串的结束 [0-9]:表示0到9之间的数字 *:表示匹配前面的字符0次或多次,如 a* 表示匹配0次或多次a字符,[0-9]
阅读全文
摘要:通过 setStyleSheet 来设置控件的 Style 样式 一、单项控件样式的常用设置: 1、border:设置控件的边框样式 // 1. 无边框 QString borderNone = "border:none"; // 2. 设置边框的值需要有3个因子: 宽度,线形,颜色 QString
阅读全文
摘要:清除布局 QLayout 中的子成员,其子成员一般为 QWidget,QLayout和 QSpacerItem,如下图Layout中的成员包含: QPushButton, QHBoxLayout,QSpacerItem 其对应的创建和删除代码如下: /// <summary> /// 为 widge
阅读全文
摘要:有些操作需要打开指定路径的目录,此时可以使用 QDesktopServices::openUrl(const QUrl &url)函数来实现。 #include <QDesktopServices> void OpenFolder() { QString folderPath = "C:\\tmp\
阅读全文
摘要:QTreeWidget 的子条目很多时候需要提供实时的搜索功能,以便能快速找到所需要的条目。 代码如下: // 1. 创建当输入框文本变化时的信号槽。 connect(ui.lineEditSearch, &QLineEdit::textChanged, this, &Demo01_GUI::OnF
阅读全文
摘要:有时需要为 QTreeWidget 的子条目添加右键菜单功能,主要有两种方案来实现: 方案一 通过为 QTreeWidget 建立信号槽,在接受 itemPressed 的信号时会被触发,然后判断当前是否为鼠标右键, 若为鼠标右键则创建添加对应的菜单栏,并提供相应的功能。 // 1. QTreeWi
阅读全文
摘要:显示树形结构的控件一般为 QTreeWidget,该控件会让各个条目以树形结构来显示。 如下图所示,为一个树形结构,Root 为根节点,一级子节点为 sheet1, sheet2,每个一级子节点下面又会有自己的子成员。 对应的代码为: #include <QTreeWidget> #include
阅读全文