
QT/ 界面
imxiangzi
这个作者很懒,什么都没留下…
展开
-
QT:界面切换之飞入飞出
RT,用QT实现的一个简单动画,比较简单所以,直接上代码,呵呵。[cpp] view plaincopyprint?//tqt.h #ifndef TQT_H_ #define TQT_H_ #include #include class Widget : publ转载 2015-11-12 09:19:24 · 3331 阅读 · 0 评论 -
Qt学习——停靠窗体QDockWidget类
一下是我写的停靠窗口例子: 下面用代码实现上面窗口的设计:1.建立项目时基类选择QMainWindow,取消Gernerate form复选框的选中状态。2.在源文件mainwindow.cpp中编写如下代码:[cpp] view plain copy print?#include "mainw转载 2016-09-13 15:48:05 · 1046 阅读 · 0 评论 -
重写QTabWidget,在标签后面添加图标按钮
原本的QTabWidget没有支持在标签后面添加自定义的按钮的方法。想在后面添加自定义的功能按钮需要重写QTabWidget类,自己实现按钮图标的重绘和鼠标点击判断等操作。1、使用到的主要事件函数: (1) void paintEvent(QPaintEvent* event); 用于在QTabWidget标签后面绘制操作按钮 (2)void mousePressEven转载 2016-09-13 17:25:28 · 5119 阅读 · 2 评论 -
QTabWidget添加自定义样式
一、参考文章:http://bbs.youkuaiyun.com/topics/390632657?page=1setStyleSheet("QTabWidget::pane{border-width:1px;border-color:rgb(48, 104, 151);\ border-style: outset;转载 2016-09-13 17:27:00 · 4078 阅读 · 0 评论 -
QT 获取系统屏幕分辨率
1,在Windows下可以使用 GetSystemMetrics(SM_CXSCREEN);GetSystemMetrics(SM_CYSCREEN) 获取。 2,在Linux下可以使用XDisplayWidth ;XDisplayHeight ()获取。3,在QT中呢?很多人说是 QApplication::desktop()->width();QApplication::deskt转载 2016-09-13 22:02:19 · 2712 阅读 · 0 评论 -
QTreeWidget树的三态操作
在工作中我们会经常使用到树状结构,例如Windows的资源管理器中的目录结构就用到了类似的控件。在Qt中可以使用QTreeWidget来实现类似的效果。Qt中提供的QTreeWidget功能相对比较少,在实际中经常需要扩展它的功能,比如本文将要谈到的三态树的问题。首先我们先创建一个QTreeWidget的对象,并添加一些节点:[cpp] view plain c转载 2016-09-13 22:27:29 · 1000 阅读 · 0 评论 -
Qt之布局管理——停靠窗口
QDockWidget类继承与QWidget类,用于停靠窗口的管理。在主窗口中,先设置中心控件,然后实例化QDockWidget对象,通过setFeatures( )设置停靠窗口的窗体特性,通过setAllowedAreas( )设置窗体可停靠的区域。具体如下:void setFeatures(DockWidgetFeatures features )QDockW转载 2016-09-14 16:41:44 · 2365 阅读 · 0 评论 -
设置QDockWidget的初始大小
一,问题:QDockWidget不能使用resize方法来确定初始大小,如果用setMaximumSize和setFixedSize,的确可以设置初始大小,但也限制了QDockWidget的最大尺寸,不能用鼠标拖动来改变QDockWidget的大小。二, 目的:如何不通过setMaximumSize和setFixedSize设置QDockWidget的初始大小三, 解决方案:派转载 2016-09-14 21:12:00 · 12988 阅读 · 9 评论 -
QDockWidget设置初始大小的一个解决方案
QDockWidget仅仅作为其子控件的一个包装,因此对其使用resize()或者setGeometry()均不管用,这造成QDockWidget的初始大小常常不尽如人意。网上有前辈提出通过调用QDockWidget的setMaximumSize()和setFixedSize()来实现初始大小的定制,但却限制了QDockWidget的最大尺寸,无法通过鼠标拖动来改变大小,因而显得较为麻烦和转载 2016-09-14 21:12:30 · 5174 阅读 · 3 评论 -
QT 中怎样使得控件与 界面等比例变化
转自:https://github.com/exoticknight/blog-post/blob/master/python-with-Qt-application-development/python%20%C3%97%20Qt%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%20%C2%B7%202%20--%20%E7%95%8C%E9%9D%A2%E5%88%9D转载 2016-09-18 22:34:35 · 1464 阅读 · 0 评论 -
QSplitter分割界面 初始比例
假设QSplitter将界面分为水平的两个部分,默认情况下每部分各占一半的宽度。默认:左边的索引为0, 右边的索引为1如果我希望初始情况下左边占整个宽度的2/5,那么右边占3/5,如下做法: ui->splitter->setStretchFactor(0, 2); ui->splitter->setStretchFactor(1, 3);转载 2016-09-19 12:05:06 · 12012 阅读 · 0 评论 -
Qt使用QSplitter实现分割窗口
分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的窗口设计中,然后抱着这样的想法简单的实现了下 [cpp] view plain copy print?//main.cpp #include #include #include #include int main(int argc, char转载 2016-09-19 12:05:36 · 1542 阅读 · 0 评论 -
堆栈窗口 QStackedWidget 测试
QStackedWidget采用堆栈的思想,将不同的widget通过addwidget()函数放进该类的对象中,并默认编号,也可显式编号,默认从0开始。indexOf()函数获取显示widget的页号或编号setCurrentIndex(int) 来显示该页号的widget。nice~实例来一发(1)效果图效果图1效果图2(2)代码实转载 2016-09-19 12:23:04 · 1420 阅读 · 0 评论 -
QDockWidget嵌套布局详解-实现Visual Studio布局
概述许多工程软件,如Qt Creator,VS,matlab等,都是使用dock布局窗口,这样用户可以自定义界面,自由组合窗口。 Qt的嵌套布局由QDockWidget完成,用Qt Creator拖界面得到的dock布置形式比较固定,不能得想要的任意组合形式,要得到如下图所示的效果,后续布局必须通过代码来完成。 ps:这是自己没事写的一个数据可视化软件 下面说说如何实现完全转载 2016-09-27 22:51:30 · 3282 阅读 · 0 评论 -
QDialog 模态对话框与事件循环
起源qtcn中文论坛中有网友问到:假设程序正常运行时,只有一个简单的窗体A,此时只有一个GUI主线程,在这个主线程中有一个事件循环处理窗体上的事件。当此程序运行到某阶段时,弹出一个模态窗体B(书上说模态窗体是有其自己的事件循环的),此时模态窗体B是否会有一个对应的子线程处理其事件循环?这儿其实有两个问题:模态对话框 和 事件循环 没有必然联系事件循环 和 子线程 没转载 2017-08-22 16:58:40 · 639 阅读 · 0 评论 -
QSplitter在QTabWidget中使用
今天在使用窗体分割的时候,用到了QSplitter这个控件,初次使用在网上找了个例子,但是例子非常之简单。当然普通的使用肯定是满足的,我是使用在QTabWidget控件中和mainwindow中。在mainwindow中使用是没有问题的,但是在QTabWidget中问题就出现了。刚开始试了好多次,在QTabWidget中添加QSplitter控件都出现了排版的问题,主要为:里面的其他控件不能随转载 2016-09-13 15:46:46 · 1187 阅读 · 0 评论 -
Qt布局管理: 分割窗口QSplitter类讲解(纯代码实现分割窗口)
一个QSplitter是一个可以包含其他控件的控件,这些控件被一个分隔条隔开,托拽这个分隔条,可以改变splitter的子控件的大小。QSplitter控件经常做为布局管理器使用,给用户提供更多的界面控制。实例:实现功能:使用QSplitter实现分割窗口功能,整个对话框由四个窗口组成,各个窗口之间的大小可以任意拖拽来改变。步骤:1. 使用Qt Creater转载 2016-09-13 15:43:57 · 3418 阅读 · 0 评论 -
【Qt】之 Splitter分割窗口
中英文对照Splitter handles(分隔条) 一个QSplitter控件中可以包含其他控件,这些控件被一个分隔条隔开,托拽这个分隔条,里面的控件的大小可以改变。QSplitter控件经常做为布局管理器使用,给用户提供更多的界面控制。QSplitter控件中的子控件总是按顺序自动并肩排列(或者上下排列)。相邻的控件之间有一个分隔条。下面是创建图6.7的窗体的代码:in转载 2016-09-13 15:42:24 · 3952 阅读 · 0 评论 -
Qt之再谈阴影边框
前面就窗口阴影已经写过一篇博客,使用九宫格的思路实现的,在我看来,凡是用程序能实现的尽量不要使用图片代替(在保证效率的前提下),今天再次分享关于我的一些小见解! 先看效果: 窗口阴影任意调节,包括阴影像素、是否圆角等。 直接上代码:void DropShadowWidget::paintEvent(QPaintEvent *eve转载 2015-11-12 09:21:17 · 1283 阅读 · 0 评论 -
[Qt]不带标题栏(FramelessWindowHint)的窗体移动及调整大小
Qt窗体若设置了setWindowFlags (Qt::FramelessWindowHint);运行后该窗体是无法进行移动和调整大小的,那要如何才能让它和普通窗体一样进行移动和调整其大小的呢?方案如下:void QFramelessWindow::mousePressEvent(QMouseEvent *event){ if (eve转载 2015-10-31 16:00:11 · 2551 阅读 · 0 评论 -
【实例】Qt创建不规则窗体
Qt创建不规则窗体文档名称Qt创建不规则窗体创建时间2012-9-10修改时间2012-9-10创建人Baifx简介(收获)利用setMask()为窗体设置遮罩,实现不规则窗体;设置遮罩后的窗体尺寸仍是原窗体大小,只是被遮罩的地方不可见转载 2015-12-28 22:33:47 · 1966 阅读 · 0 评论 -
Qt 不规则窗体编程
有些时候,为了创建个性化软件界面,往往需要各种形状的窗口,这就有别于传统的窗口了!那么,怎么处理类似的界面呢?我们可以通过继承QWidget、QDialog等类来派生新类,在新类中重新实现基类中的虚函数如:mousePressEvent、mouseMoveEvent、paintEvent。为什么要重新实现这些函数呢?因为不规则窗口不存在边框,如果想要通过鼠标来实现窗口位置变换、相应用户拖拽等动作的转载 2015-12-28 22:58:03 · 593 阅读 · 0 评论 -
用Qt实现窗体的无边框、可移动、透明不规则显示(需背景透明的图片)
用Qt可以做出很炫的界面,更多的功能还有待学习^_^!1、构造函数中需要做的设置:[cpp] view plaincopyprint?this->setWindowOpacity(1);//设置窗体不透明 this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSyste转载 2015-12-28 22:59:00 · 3263 阅读 · 0 评论 -
Qt中不规则窗体和部件的实现
Qt中不规则窗体和部件的实现,不管是窗体还是部件,都是从QWidget派生而来的,所以它们的原理是一样的,都是设置部件的背景色或者按钮图标等为一个图像A,然后设置此部件的掩码为另一个图像B,这个图像B经过位与运算后,得到不规则的图像,这就行了下面,是一个简单的示例:form.h:#ifndef FORM_H#define FORM_H#include class转载 2015-12-28 22:59:36 · 826 阅读 · 0 评论 -
Qt 无边框、透明、可移动、的个性窗体
原文地址:无边框、透明、可移动、的个性窗体案例详解" style="text-decoration:none; color:rgb(155,97,0)">【转载】Qt 无边框、透明、可移动、的个性窗体案例详解作者:风贝很多朋友都问透明的效果怎么做,为什么自己做的无边框窗体不可移动,一个个回答的很累,干脆写出来分享下好了,我只用代码说话。 无边框、透明、可移动、的个转载 2015-12-28 23:00:56 · 1002 阅读 · 0 评论 -
用两种方法教你从零创建Qt对话框程序
本文用两种方法从零教您实现〈C++ GUI Qt4 编程(第二版)〉上的一个经典案例。第一种方法是使用Qt Creator来设计对话框的外观,然后手工写代码,实现功能。此方法,对于初学者来说,能够很好的理解Qt程序的基本原理,为深入学习Qt打下一个很好的基础。第二种方法是完全借助于Qt Creator完成程序。此方法,对于初学者来说,能够快速的完成一个对话框程序,从而激发出学者才兴转载 2015-12-31 10:51:10 · 2622 阅读 · 0 评论 -
Qt设计用户界面的三种方法
今天阅读了《C++ GUI Qt4编程》的中创建对话框的章节,内容不难也不多,易于掌握。虽然此章的标题为“创建对话框”;但我却认为其内容的重点可放在如何使用Qt设计界面上。 Qt设计界面有三种方式:手工编写创建界面的代码:此方法比较复杂,不够直观; 使用Qt Designer界面编辑器设计:可直接拖放控件、设置控件的属性,简单、直观、易于操作; 动态加载UI文件并生成界面:此方法转载 2015-12-25 10:07:15 · 34264 阅读 · 2 评论 -
Qt自定义界面类并提升(提升的窗口部件)
1、用Qt Creator新建一个自定义Widget,类名自定义为“QMyForm”。2、在Qt Creator自带的设计师里面,把普通的Wiget提升为自定义的QMyForm,选择菜单“提升为...”3、手动输入提升的类名“QMyForm”,然后点击按钮“添加”4、点击按钮“提升”5、OK了转载 2015-12-25 10:11:35 · 10550 阅读 · 0 评论 -
Qt界面设计总结
1. 子窗体或控件,重写paintEvent事件,画边框、背景、文字、图片效果比较好。用paintEvent 事件画边框,用QPalette设置背景。// 画边框 QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, true); painter.setPen(Q转载 2015-12-03 00:12:05 · 17303 阅读 · 0 评论 -
Qt基础——让使用Designer创建的UI也能自动适应窗口大小
我们知道,通过Qt的各种Layout可以实现控件的自动布局。但是在使用Qt Designer创建的UI时,发现UI始终是设计时的样子,无法随着容器的放大缩小自适应地变化。通过之前对ui的.h文件进行分析,我们知道Qt在生成ui代码时,根据最外层的Layout自动添加一个了Widget: /** 这个Widget在UI设计时是没有的,是Qt为了方便组合其他的组件而且自动创转载 2015-12-26 10:33:37 · 6020 阅读 · 2 评论 -
Qt4----子例化QDialog(可扩展对话框的使用)
1、linux下安装Qt4请参考如下博文:Qt4在linux下的安装2、Qt4工程的创建请参考如下博文:Qt4创建工程的几种方法:linux系统3、可扩展对话框通过纯代码的形式,建立工程。点击【Detail】按钮,显示扩展对话框包括四部分:工程文件:ExtensionDlg.pro主程序文件:main.cp转载 2016-01-11 17:34:10 · 1026 阅读 · 0 评论 -
Qt Main Window——主窗口及其主要组成部分
Main Window and Related ClassesQAction动作类,用于当做一个菜单项或工具项插入菜单或工具栏QActionGroup动作组,用于管理多个动作,设置它们之间的互斥性等QWidgetAction部件动作,继承自QAction,用于将小部件插入菜单或工具栏转载 2016-09-12 22:08:41 · 5956 阅读 · 0 评论 -
qt(c++)之 工厂方法模式
转载自:http://blog.youkuaiyun.com/liang19890820/article/details/70652858简述工厂方法模式(Factory Method Pattern)是一种常用的对象创建型设计模式,此模式的核心思想是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用以及方便后期维护拓展的目的。简述 模式结构 优缺点 适用场景...转载 2019-04-27 11:30:10 · 914 阅读 · 0 评论