Qt界面编程
-快乐的程序员-
这个作者很懒,什么都没留下…
展开
-
QTableWidget分页和排序
本例程演示了在将所有数据存储到成员变量后,根据每页显示记录数量对表格数据进行分页展示,且提供了切换页面的按钮和输入框。在支持分页后,同时处理了表头的点击事件,将页面数据进行重排,使用了C++ 11的lamda函数。在Qt5.14.2中编译测试通过。代码粘贴如下:main.cpp#include "dialog.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc,原创 2021-09-24 17:01:06 · 1444 阅读 · 0 评论 -
在Ubuntu14.04 里用apt命令安装QT
这两天折腾各种版本的QT,发现在旧版操作系统里安装新版的QT很可能失败,失败后还不好解决,以至于我都放弃了必须安装新版本QT的想法,反正在项目中用到的QT版本其实很低就够用。只要是QT5就行,毕竟不想用QT4了,QT4用json或串口等还要自己下载扩展。在Ubuntu14里编译器版本是4.8.4,QT版本是5.2.1,安装命令如下:sudo apt install qt5-default qtcreator qt5-doc qttools5-dev-tools备注:qt5-default 如果只是原创 2021-08-04 20:43:31 · 3048 阅读 · 0 评论 -
QT5.9国际化的坑
首先百度的国际化方法,我找到C:\Qt\Qt5.9.9\5.9.9\mingw53_32\translations\qt_zh_CN.qm,放进去用,无效果!但这个文件放到QT5.2.1里用,有效果。我在Ubuntu14.04里用命令sudo apt-get install qt5-default安装了qt5.2.1的编译环境,用sudo apt-get install qtcreator安装了qt5.2.1的编辑器Qt Creator 3.0.1。在QT不知道哪个版本开始,需要将qt_zh_CN.qm原创 2021-08-03 14:42:43 · 254 阅读 · 0 评论 -
QT5程序在Linux下的发布
首先单独创建目录比如test,目录中拷贝QT编译的release状态的应用程序比如test,然后拷贝两个脚本到test目录:第一个用于打包的pack.sh:#!/bin/sh exe="test" #你需要发布的程序名称des="/home/dhn/test" #创建文件夹的位置deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }') cp $deplist $des第二个脚本用于程序启动run.sh,原创 2021-08-03 06:43:20 · 478 阅读 · 0 评论 -
QT中双击mdiArea区域打开文件(监听双击事件)
之前做过一个QT的绘图软件,就像Photoshop一样,可以创建很多画布。但一直未能实现像Photoshop里一样双击中间空白区域(无画布图片打开时中间空白区域)就弹出选择文件的对话框的功能。今天百度了一遭,终于找到了方法,很简单,首先在MainWindow的构造函数里增加一个语句,安装mdiArea控件的事件筛选(用过QT的都知道,拖拽的空间,其名称可在ui变量中找到):ui->mdiArea->installEventFilter(this);然后在MainWindow里重载:pr原创 2021-04-15 15:27:00 · 668 阅读 · 0 评论 -
QT4.8.7windows7部署方法
1、准备MinGW4.8.2(网址:https://wiki.qt.io/MinGW找到适合Qt 4.8.7的版本):2、安装qt-opensource-windows-x86-mingw482-4.8.7.exe:发现需要Mingw,填写路径:开始安装:3、安装qt-creator-windows-opensource-2.8.1.exe(网址:https://download.qt.io/archive/qtcreator/2.8/2.8.1/):安装完成后Qt目录总计:菜单原创 2021-03-01 13:28:43 · 1017 阅读 · 0 评论 -
QT4用qextserialport扩展连接串口
QT4里不像Qt5自带串口扩展那么方便,但是嵌入式开发或者想支持很旧的Linux操作系统时就需要Qt4,毕竟Qt4轻量级啊。引入qextserialport扩展的方法比引入QJson扩展方便多了,从:https://github.com/qextserialport/qextserialport可以下载到最新源码,可以支持Linux下也支持异步信号的方式,即QextSerialPort::EventDriven。下载后,解压缩,目录src更名为qextserialport,然后拷贝到项目中。修改项目文件原创 2020-05-09 11:12:54 · 624 阅读 · 0 评论 -
QT4引入QJson扩展
QT4引入QJson扩展颇为复杂,百度搜索可以查看到解决方案,大概是如下过程:1、从http://qjson.sourceforge.net/build/下载qjson扩展源码。2、下载windows版的cmake(64位还是32位无所谓,只是个编译工具)工具,版本貌似要求大于2.8,一般下载3.0以上,但不要高太多(文件太大从国外下载那个网速。。。)。3、编译它。4、把库libqjson.dll拷贝到Qt的bin目录,比如我的Qt版本4.8.7,就拷贝到C:\Qt\4.8.7\bin,注意不是Mi原创 2020-05-09 09:43:24 · 2975 阅读 · 0 评论 -
Qt4通过QWebView调用网页界面
QT4里带有QWebView类,这个类可以加载一个网页的html文件。使用方法为:1、在pro文件里增加webkit:QT += core gui webkit2、引入头文件。3、定义对象:MyWebView view;4、启用JavaScript的支持:view.page()->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);view.settings()->setAttribute原创 2020-05-09 09:12:29 · 2285 阅读 · 0 评论 -
Qt背景图片填充、适应、拉伸、平铺、居中效果
背景图片在windows设置里有填充(按宽高都填满窗口,多余部分溢出隐藏)、适应(宽高适应窗口,缺少的部分用背景色填充)、拉伸(将图片宽高拉伸至窗口宽高,可能变形)、平铺(左上角绘制图形,一直到绘制满窗口为止)、居中(将图片绘制到窗口正中,如果图片比窗口小,用背景色填充)。在Qt里,我今天在查找到一篇文章后,得以实现,后来进行了改进,都用QImage做到了,这样就与文件的磁盘路径脱钩,可以做到将...原创 2020-04-20 14:04:37 · 6425 阅读 · 0 评论 -
QT5标准弹窗按钮翻译中文(按钮汉化)
本文方法QT4、QT5均适用。百度搜索了好久,各类文章,操作起来都失败了,所以我自己写一个。首先需要到Qt安装目录里找到“qt_zh_CN.qm”这个文件,我的QT版本为4.8.7,目录在“C:\Qt\4.8.7\translations”里,这里有各种翻译好的qm文件,还有相应的ts文件,如果用Linguist打开ts文件,还能看到翻译的情况,如果你自己添加过弹窗这个设计师类,你会发现有默认...原创 2020-03-16 10:19:58 · 3508 阅读 · 2 评论 -
QT编程段错误和死循环的总结
从19年10月份开始学习QT编程已经快2个多月了,有了MFC编程的基础,上手QT相当容易。然而,在QT编程中,遇到了两种很难定位问题的错误:段错误和死循环。在普通C++编程中,如果遇到段错误,我们用gdb可以调试定位错误位置,因为一切代码都是我们写的。但QT是一个框架,我们只是编写了业务代码,QT还会为我们设计的UI编写很多代码,另外,我们使用了很多现成的QT类,很可能发生段错误位置是在QT自...原创 2020-01-13 10:58:18 · 1941 阅读 · 0 评论 -
Qt中矩形的自定义子类(支持缩放、拖拽,父级场景无拖影)
直线的自定义子类见我之前的文章:Qt中直线的自定义子类(支持缩放、拖拽,父级场景无拖影)。支持缩放,支持按住shift键拖动鼠标时保持宽高相同。#ifndef MYGRAPHICSRECTITEM_H#define MYGRAPHICSRECTITEM_H#include <QGraphicsRectItem>#include <QList>#include ...原创 2019-12-09 14:45:30 · 484 阅读 · 8 评论 -
Qt中直线的自定义子类(支持缩放、拖拽,父级场景无拖影)
在QT编程中,我发现画线的处理最复杂了。如果只是用QPaint的drawLine来做,自然简单。可是,实际项目中会希望线段可以拖拽、缩放。而拖拽功能,有QGraphicsLineItem已经为我们实现了,所以,我们会用这个类来创建线段。可惜,这个类没有为我们实现缩放功能,网上找到文章:《QGraphicsItem选中后,出现边框,可以拉伸》,首先感谢这篇文章的作者“LiuZnHi”,帮我解决了拖拽...原创 2019-12-09 08:45:11 · 1354 阅读 · 0 评论