一.简述 今天介绍一个简单的窗口属性——Qt::WA_DeleteOnClose. 在正常创建窗口后,我们一般会调用close()方法来关闭窗口,这里我们看一下Q助手中关于close()方法的介绍. bool QWidget::close() Closes this widget. Returns true if the widget was closed; otherwise returns false. First it sends the widget a QCloseEvent. The…
自定义QT窗口部件外观 重新定义Qt内置窗口部件的外观常用的方法有两种:一是通过子类化QStyle 类或者预定义的一个样式,例如QWindowStyle,来定制应用程序的观感:二是使用Qt样式表. QStyle 类的使用 1.      准备必要的背景图片.在你想添加自定义风格的工程目录下新建一个文件夹“images”,将背景图片等放入文件夹“images”. 2.      点击Qt Creator的“文件”->“新建文件或工程”->模板选择“Qt”,再选择Qt资源文件->点击“选择”…
QPalette类包含了Qt窗口不见的颜色组(collor group); 1.Active组,该组的颜色用户当前活动的(active)窗口,即具有键盘或鼠标焦点的窗口; 2.Inactive组,该组用语其他的窗口; 3.Disabled组,该组用语窗台为不可用的(disabled)的子窗口部件(不包含窗口). 所有Qt窗口部件都拥有一个调色板并使用它绘制自己.通常,活动状态的窗口标题栏为蓝色的,而非活动(inactive)状态的窗口的标题栏显示为灰色的;活动状态的窗口和非活动状态的窗口都可以包…
Qt 学习之路 2(24):Qt 绘制系统简介 豆子 2012年10月30日 Qt 学习之路 2 77条评论 Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制.整个绘图系统基于QPainter,QPainterDevice和QPaintEngine三个类. QPainter用来执行绘制的操作:QPaintDevice是一个二维空间的抽象,这个二维空间允许QPainter在其上面进行绘制,也就是QPainter工作的空间:QPaintEngine提供了画笔(QPainter)…
Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制.整个绘图系统基于QPainter,QPainterDevice和QPaintEngine三个类. QPainter用来执行绘制的操作:QPaintDevice是一个二维空间的抽象,这个二维空间允许QPainter在其上面进行绘制,也就是QPainter工作的空间:QPaintEngine提供了画笔(QPainter)在不同的设备上进行绘制的统一的接口.QPaintEngine类应用于QPainter和QPaintDevice…
窗口作为界面编程中最重要的部分,没有窗口就没有界面,是窗口让我们摆脱了DOS时代,按钮是一个窗口,文本框是一个窗口,标签页是一个窗口,...一个窗口可以由多个窗口组成,每天我们都在与窗口打交道,当你打开windows时,桌面就是一个窗口,你打开浏览器时,你也正在访问窗口...好了,回到今天的话题,QT窗口系统,QT是一个跨平台的框架,类似微软的MFC,Borland的OWL,前者只适用于windows,而使用QT你可以开发windows平台应用程序,你也可以开发linux应用程序,当然了你也可以…
1.新建一个新的Qt Gui应用,项目名称随意,例如MyMainWindow,基类选择QMainWindow,类名为MainWindow. 2.项目建立后,双击mainwindow.ui文件,在界面的“在这里输入”的地方进行双击,改写为“文件(&F)”,并按下回车键.此时,界面左上角显示“文件(F)”,并将其快捷键设置为Alt+F. 3.同理,在文件的下拉菜单中添加“新建”选项.此时,在Action编辑器中可以看到刚添加的新建菜单,如下图第一行所示. 4.双击action_N,可以打开"…
/******************************************************************** * qt 窗口控件自动调整大小 * * 在写gui的时候,希望窗口能够自动调整大小,这样就不许要手动调整. * qt creator中就集成了这种方法,在qt中设置即可. * 本文参考链接: * http://www.cnblogs.com/emouse/archive/2013/05/19/3087708.html * * Tony, 2016-5-21,…
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt-窗口Close()后自动释放空间     本文地址:http://techieliang.com/2017/11/94/ 在进行一个四窗口项目,当第四个窗口显示结果后,若重新开始则close()结果页面后new第一个窗口 发现不断的重新开始会导致内存占用越来越多 Qt窗口在Close()指令后调用CloseEven(),最后判断是否关闭 若关闭,则Hide()窗口,并不是真正的释放内存…
我在Qt主程序中开启一个线程,线程中使用信号-槽来产生QMainWindow(GUI),main函数代码如下:int main(int argc, char *argv[]){ QApplication a(argc, argv); NetWorkThread thread; thread.start(); // 进入事件循环 return a.exec();} 对于生成的QMainWindow,我全部手动关闭后,再想发送信号来创建,就无法创建出来了~加断点调试起来看,此时信号-槽好像断开了,于…
要想 windows下抓取Qt进程主界面,并嵌入到自己的程序中显示,需要首先设置qt窗口的windowTitle属性,然后就可以通过 windows api 中的 FindWindow 函数查找到窗口的hWnd了,最后通过SetParent将QT窗口装入即可. 抓取Qt界面窗口的时候,最好选用FindWindow的方式,因为通过进程查找主窗口的方式可能导致抓取到的窗口句柄不是主窗口(一个进程可能对应多个主窗口或者没有主窗口) 遇到抓取的Qt程序界面坐标响应异常,会导致菜单栏和工具栏无法正常鼠标事…
简述 Qt提供一个类似于其它编译器供应商提供的复杂属性系统(Property System).然而,作为一个编译器和平台无关的库,Qt不能够依赖于那些非标准的编译器特性,比如:__property或者[property].Qt的解决方案适用于Qt支持平台下的任何标准C++编译器.它依赖于元对象系统(Meta Object Sytstem) - 通过信号和槽提供对象间通讯机制. 简述 声明属性的要求 通过元数据对象系统读写属性 一个简单的示例 动态属性 属性和自定义类型 为类添加附加信息 更多参考…
QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowseclipse跨平台server 版权声明 请尊重原创作品.转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正. QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 QT源码解析(二)深入剖析QT元对象系统和信号槽机制 QT源…
Qt 5 与 Qt 4 最大的一个区别之一是底层架构有了修改.Qt 5 引入了模块化的概念,将众多功能细分到几个模块之中.Qt 4 也有模块的概念,但是是一种很粗的划分,而 Qt 5 则更加细化.本节主要对 Qt 5 的模块进行一个简单的介绍,以便以后大家需要哪些功能的时候知道到哪个模块去寻找. Qt 5 模块分为 Essentials Modules 和 Add-on Modules 两部分.前者是基础模块,在所有平台上都可用:后者是扩展模块,建立在基础模块的基础之上,在能够运行 Qt 的平台…
一.问题 Linux系统下Qt窗口的透明效果成了黑色,但同样的代码在windows机子上有透明效果,主要是修改系统的配置,仅在centos6.3及其以上版本实验过.其他系统可以相应配置. 二.问题运行图 (1)Qt透明效果,centos下运行都会出现如下图1所示. 三.解决方法 (1)窗口透明,窗口上的控件不透明,其代码设置 setAutoFillBackground(false);  //这个不设置的话就背景变黑 setWindowFlags(Qt::FramelessWindowHint);…
#3个类:QPainter,QPainterDevice 和 QPaintEngine 三个类 #qpainter用于执行绘制操作 #QPainterDevice是一个二维空间抽象,允许qpainter在其上面进行绘制,也就是qpainter工作空间 #QPaintEngine 提供了画笔(qpainter)在不同设备上进行绘制统一接口,QPaintEngine类应用于QPainter和QPaintDevice 之间,如果需要自定义一个设备时 #则不需要关心QPaintEngine 这个类的QP…
qt 窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透 窗口置顶qt 里是 setWindowFlags(Qt::WindowStaysOnTopHint)kde 里是 KWindowSystem::setState(winId(), NET::KeepAbove)这样的置顶窗口不会处于全屏窗口的上方,如果需要真正的置顶,setWindowFlags(Qt::X11BypassWindowManagerHint) 可无视这个规则,但这样不会出现任务栏等,kimt…
Qt窗口中的一些小技术总结 //Qt主窗口没有最小化,最大化按钮且最大化显示  int main(int argc, char *argv[]) { QApplication a(argc, argv); TestQtForWinCE w; w.setWindowFlags(w.windowFlags()& ~Qt::WindowMaximizeButtonHint& ~Qt::WindowMinimizeButtonHint); w.showMaximized(); return a.e…
qt中的QWidget窗口支持窗体绘制,但是不支持窗口标题栏绘制,想要美观的界面,还需要自己去定制,下面我就介绍一种定制窗体的方法 一个窗口无非就3部分,标题栏.窗体和状态栏,接下来我定制的窗口没有状态栏,如果自己想加状态栏的话,照着这个模式自己也可以添加,说白了,窗口定制就是把完整的窗口分3部分定制,而每个部分又都是一个qt窗口 定制窗口效果图如下,根据个人喜好,自己也可以定制不同的效果 图1 定制窗口 如图1所示,这个窗口包含两部分,标题栏和窗体,这两部分其实分别是一个没有标题栏的QWidg…
Qt提供了巧妙的属性系统,它与某些编译器支持的属性系统相似.然而,作为平台和编译器无关的库,Qt不能够依赖于那些非标准的编译器特性,比如__property 或者 [property].Qt的解决方案能够被任何Qt支持的平台下的标准C++编译器支持.它依赖于元对象系统(Meta_Object Sytstem),元对象系统通过信号和槽提供了对象间通讯的机制. 1. Qt中怎么声明属性? QObject中的子类的私有域中使用Q_PROPERTY宏来声明一个属性 以下是来自QWidget类的一些属性声…
转载请说明出处, 并附上原文链接http://blog.csdn.net/qq907482638/article/details/72189014. 问题描述 在Qt学习过程中,在让QDialog居中显示的时候, 出现了一点问题. 然而百度的都是大同小异. 都不行.不知道为什么, 难道是我的搜索姿势不对. 于是自己实现了居中显示的函数. 须知 以下函数只要继承QWidget都可以使用. 例如 QDialog, QPushButton( -v- 一个居中的”引爆按钮”) 关于坐标问题: qt窗口坐…
一.窗口置顶 与 取消置顶 void MainWindow::on_windowTopButton_clicked() { if (m_flags == NULL) { m_flags = windowFlags(); setWindowFlags(m_flags | Qt::WindowStaysOnTopHint); this->show(); } else { m_flags = NULL; setWindowFlags(m_flags); this->show(); } } 二.全屏显…
PS: 本文使用的是Qt 4.8.4版本,不同版本代码可能会有差异 设置窗口标题 setWindowTitle(QString::fromLocal8Bit("易语言")); 禁用窗口最大化按钮 setWindowFlags(Qt::Dialog | Qt::WindowMinimizeButtonHint); 禁止窗口改变大小 setFixedSize(this->width(), this->height()); 鼠标左键按下 // 重写虚函数void mousePre…
PyQt学习有阵子了,对章节的骨架基本考虑好了,准备本节就写组件的属性的,结果一是日常工作繁忙,经常晚上还要加班,二是Qt的组件属性很多,只能逐一学习.研究和整理,花的时间有点长,不过终于将可视化设计界面组件与QWidget类相关的组件属性弄清楚了,写了个大章节,准备参与CSDN的推荐使用,加章节名不太好,因此在此使用章节序号独开一节引用具体博文.具体博文地址: PyQt(Python+Qt)入门学习:Qt Designer可视化设计界面组件与QWidget类相关的组件属性详解 博客地址:htt…
如何创建一个QT项目 如何创建一个QT项目 1.创建新项目 2.配置选择 3.增加按钮 4.按钮和窗体的大小标签图标设置 5.信号与槽 6.自定义信号与槽 代码 1.创建新项目 点击文件->新建项目-> Application->Qt Widgets Application-> choose. 2.配置选择 名称->路径-> Kit Selection->MinGW-> 类名->基类:QWidget->不创建界面-> 项目管理. 3.增加按…
前言   上一篇将ECharts嵌入Qt中,在开始ECharts使用之前,还有一个很重要的功能,就是在窗口变换大小的时候,ECharts的图表尺寸也要跟随Qt窗口变换大小而变换大小.   Demo演示      原理   QWebEnginePage的大小会动态改变,然后导致html的body改变:   在windows里面设置body宽高分别为比例100%,100% 在div标签设置div的大小为填充body宽高比例分别为100%,100% 开启echarts的大小变化刷新的resize函数.…
自 QML 第一次发布已经过去一年多的时间,但在企业应用领域,QML 一直没有能够占据一定地位.很大一部分原因是,QML 缺少一些在企业应用中亟需的组件,比如按钮.菜单等.虽然移动领域,这些组件已经变得可有可无,但在桌面系统中依然不可或缺.为了解决这一问题,Qt 5.1 发布了 Qt Quick 的一个全新模块:Qt Quick Controls.顾名思义,这个模块提供了大量类似 Qt Widgets 模块那样可重用的组件.本章我们将介绍 Qt Quick Controls,你会发现这个模块与…
编程示例 使用Qt创建应用程序是十分简单的.考虑到你的使用习惯,我们编写了两套教程来实现两个相似的应用程序,但是使用了 不同的方法.在开始之前,请确保你已经下载了QtSDK的商业版本或者开源版本,并且你也已经熟悉了Qt的开发工具.QtSDK 提供了QtCreator集成开发环境使得开发Qt的应用程序十分简单. 用户界面的选择 除了直观上知道Qt是跨平台的,提供了包括线程,网络通信以及视频回放和网络摄像头等的跨平台抽象外,Qt提供了两种 独立的方法创建用户界面. QtQuick模块为创建流畅的.活…
QT你不能说他不流行吧, WPS, Wirshark, KDE, dropbox, skype, virtualbox都和qt有关吧, 你想写个跨平台的C++程序, QT是个不错的选择, 普通PC应用, 微软和苹果两家是大头, 跨平台要求不高, 小公司小应用做个WINDOWS版就够了, 这种情况下当然用VS那一套东西. 而大公司呢, 他们又偏向为不同的OS维护不同的版本, 成本上高, 但是效果比你写一个统一的跨平台的源代码然后在不同平台上编译要好. 还有个原因是大公司还是希望有自己的库, 因为库…
如果我们创建了一个窗口,接下来使这个应用程序在用户让它退出的时候退出. #include <qfont.h>因为这个程序使用了QFont,所以它需要包含qfont.h.Qt的字体提取和X中提供的可怕的字体提取大为不同,字体的载入和使用都已经被高度优化了.        QPushButton quit( "Quit", 0 );这时,按钮显示"Quit",确切的说这就是当用户点击这个按钮时程序所要做的.这不是一个巧合.因为这个按钮是一个顶层窗口,我们还是…