- 博客(11)
- 资源 (5)
- 收藏
- 关注
原创 Qt Installer FrameWork文件后缀与打开程序关联
查看Qt帮助文档,有一个 RegisterFileType 的Operation这里解释一下参数信息:extension:需要注册的文件后缀,不包含.command:打开该文件的命令description:描述contentType:文件内容类型icon:文件图标下面是示例代码Component.prototype.createOperations = function(){ var registFileSuffix = ["hyprj"]; component.addOpe
2021-04-07 18:05:19
405
原创 QTableView/QTableWidget 实现hover一行效果
QTableView/QTableWidget 实现hover一行效果在网上看到一些实现这个效果都是通过鼠标事件判断悬浮在哪一行实现的,这里提供另一种思路。在Qt的模型/视图/代理框架里面,关于item的绘制是交给代理实现的,默认的QStyledItemDelegate的paint会去调用virtual void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const;这个虚函数,初始化一些
2021-02-02 18:21:59
4843
8
原创 Qt installer framework 在 linux生成桌面图标
关于Qt install framework制作安装包的过程可以参考这篇文章https://blog.csdn.net/liukang325/article/details/52297036下面是在Linux下制作桌面图标的过程,首先看文档,有一个 CreateDesktopEntry 参数可以看到这个第二个参数填写文件名称,如果不是绝对路径,会默认将该文件放到 $XDG_DATA_HOME/applications 目录下。第三个参数是一组键值对,具体可使用的键值可参考https://specif
2021-01-26 23:46:51
1353
原创 Qt Installer FrameWork MessageBox按钮翻译中文
Qt Installer FrameWork MessageBox按钮翻译中文因为项目需要,要为软件制作安装包,要求Linux和Windows界面一致,此时就想到用QIFW,制作安装包过程都还算顺利,但是发现弹出的消息框按钮不是中文,就查看帮助文档,发现了翻译这个功能。但是给config.xml文件里加了翻译以后,还是不起作用,于是翻看源码,发现原因如下。这段代码是加载翻译文件,如果配置文件里改项为空,则加载locale对应的翻译文件,否则加载资源文件里对应配置文件中设置的翻译文件。资源里的翻
2021-01-26 18:01:04
619
4
原创 Qt自定义圆形环状菜单
Qt自定义圆形环状菜单先看实现的效果可设置圆环背景色、Hover扇形的颜色、箭头颜色、动画速度,核心代码如下1、初始化设置背景透明,默认打开旋转和缩放动画 q->setFixedSize(180, 180); diameter = 150; smallDiameter = calcInCircleRadius() * 2; q->setMouseTracking(true); q->setWindowFlags(Qt::FramelessWind
2021-01-08 21:56:14
1936
2
原创 QProcess在Linux下双向通信
QProcess在Linux下双向通信1、父进程 QProcess pro; pro.setReadChannelMode(QProcess::MergedChannels); pro.connect(&pro, &QProcess::readyRead, [&]{ QMessageBox::information(0, "recv", pro.readAllStandardOutput()); }); pro.start("./t
2020-10-28 14:21:54
423
原创 Qt自定义开关按钮
Qt自定义开关按钮先看实现的效果可设置开关背景色、圆背景色、动画速度,核心代码如下 //开启鼠标追踪,动态切换鼠标样式 setMouseTracking(true); //设置属性,初始化动画 setProperty("circlePos", QPointF((float)height() * 0.05, (float)height() * 0.05)); m_pAni = new QPropertyAnimation(this); m_pAni->setTargetObjec
2020-10-28 11:03:15
1298
原创 QTableView/QTableWidget表头添加复选框
QTableView/QTableWidget表头添加复选框核心代码如下//可复选列的属性struct stCheckbleColumnSettings{ bool canTristate; //是否支持三态 QString text; //显示的文本 Qt::Alignment al; //对齐方式 stCheckbleColumnSettings(){ canTristate = false; al = Qt::A
2020-10-21 18:03:47
2445
原创 QTableView/QTableWidget设置单元格文字边距
QTableView/QTableWidget单元格设置文字由于项目要求,需要设置Tree行的间距,在网上搜索发现大多数都是用的样式表QTreeView::item{ padding:10px;}或者QTreeView::item{ margin:10px;}但是在使用中发现这个样式只能修改行高,无法修改间距。所以查看Qt帮助文档,发现有QTreeView有drawRow接口,尝试重写该函数,发现能够实现间距调整void SettingTree::drawRow(QPainter
2020-10-20 09:40:01
4758
原创 QTreeView/QTreeWidget设置行间距
*QTreeView/QTreeWidget设置行间距由于项目要求,需要设置Tree行的间距,在网上搜索发现大多数都是用的样式表QTreeView::item{ padding:10px;}或者QTreeView::item{ margin:10px;}但是在使用中发现这个样式只能修改行高,无法修改间距。所以查看Qt帮助文档,发现有QTreeView有drawRow接口,尝试重写该函数,发现能够实现间距调整void SettingTree::drawRow(QPainter *pa
2020-10-19 17:57:10
4548
1
原创 QTabBar修改文字对齐方式
QTabBar文字对齐方式修改尝试使用QSS修改QTabBar{ text-align:left center;}QTabBar::tab{ text-align:left center;}失败!查看帮助文档,也没找到能够修改对齐方式的函数,索性去查源码,一路跟踪到case CE_TabBarTab: if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(op
2020-09-10 15:45:48
1830
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人