![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Qt学习笔记
、zyx
c/c++,Linux,Qt,stm32 等研究ing
展开
-
Qt字符串类QString
1、字符串有如下几个操作符: (1) “+”“+=”QString str1 = "Welcome";str1 = str1 + "to you";QString str2 = "hello";str2 += "World";解析:QString str1 = "Welcome"; 传递给QString一个 const char* 类型的ASCII字符串“Welcome”,这将导致调原创 2017-03-21 22:17:55 · 766 阅读 · 0 评论 -
Qt 隐式共享
之前写过一篇学习有关隐式共享的文章,那只是比较粗浅的学习,只有大致的了解,其实当时自己也不是特别懂,不知道会在哪里用到呢?后来查别的资料涉及到了隐式共享,觉得很好的,所以再次记录下来,作为学习笔记吧。 其实,在使用Qt容器类的时候会可能用到隐式共享机制(implicit sharing),也叫做copy on write。顾名思义,就是说,在内容有变动的情况下才对容器中的数据结构做复原创 2017-03-22 22:00:59 · 431 阅读 · 0 评论 -
Qt容器类及其遍历(Java风格和STL风格迭代器)
1、Qt提供了一组通用的基于模板的容器类。Qt的容器类对比C++的标准准模板库中的容器类,更轻量、更安全、更容易使用;此外,Qt的容器类还在速度、内存消耗和内联(inline)代码等方面进行了优化。2、存储在Qt容器类中的数据必须是可赋值的数据类型,即,这种数据类型必须提供一个默认的构造函数(不需参数的构造函数)、一个复制构造函数和一个赋值操作运算符。3、这些数据类型包含通常使用的大多数数据类型,包原创 2017-04-12 22:27:12 · 2182 阅读 · 0 评论 -
Qt中用CSS对进度条的样式表进行设置
/*首先是设置主体*/QSlider{ border-color: #bcbcbc;}QSlider::groove:horizontal { border: 1px solid #999999; height: 1px; margin: 0px 0; left: 5px; right: 5px; }/*设置中间的那个滑动的键 */QSlider::h原创 2017-04-29 11:10:08 · 4072 阅读 · 0 评论 -
Qt隐藏系统的窗口框架后如何移动窗口,如何改变其大小?
做项目时,为了界面美观些,把系统提供的窗口框架去掉后(无框架窗口),最令人恶心的是,无法改变无边框窗口的大小,也无法移动窗口。1、首先要了解一下九宫格,什么是九宫格? 一个窗体可以被划分为上、下、左、右、左上、左下、右上、右下、中间。除了中间部分,其余都要写代码。设外边框(如左部分)的宽度都为 Padding;2、在头文件中我们加一个宏定义,及一个用于判断鼠标将要移动方向的枚举:#define P原创 2017-04-29 11:05:21 · 1384 阅读 · 0 评论 -
Qt如何设置界面透明
1、设置窗口整体透明,但是窗体上的控件不透明。 可以通过设置窗体的背景来设置。QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal);2、设置子控件透明: 可以在Qt Designer中,直接右键改变样式表,来设置其背景色:ba原创 2017-04-29 09:58:20 · 22114 阅读 · 3 评论 -
Qt如何隐藏ListWidget的滚动条
为了界面的美观,我们有时会需要隐藏掉QListWidget的水平滚动条和垂直滚动条。 可以使用以下代码实现:QListWidget *lw_lyricList = new QListWidget();ui->lw_lyricList->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);ui->lw_lyricList->setHorizonta原创 2017-04-29 10:04:17 · 11107 阅读 · 0 评论 -
Qt如何设置任务栏中该应用的图标
this->setWindowIcon(QIcon(":/skin/icons/MusicPlayer.ico")); //设置窗口图标原创 2017-04-29 09:43:53 · 3965 阅读 · 1 评论 -
Qt如何去掉系统提供的窗口边框
setWindowFlags(Qt::FramelessWindowHint);Qt::FramelessWindowHint: Produces a borderless window. The user cannot move or resize a borderless window via the window system. On X11, the result of the flag原创 2017-04-29 09:33:42 · 23404 阅读 · 0 评论 -
鼠标事件MouseEvent
1、mousePressEvent事件头文件中声明 bool isLeftPressDown; QPoint m_movePoint; 并且初始化为 isLeftPressDown = false;void MusicWidget::mousePressEvent(QMouseEvent *event){ switch(event->button原创 2017-04-29 09:24:07 · 887 阅读 · 0 评论 -
正则表达式的应用&按钮可执行状态的改变
题目:根据lineEdit中输入的表达式是否有效来启用或者停用“OK”按钮。1、新建一个基类为Dialog(可选)的Qt工程; 2、界面: 3、设置widget的属性 *选择Label,设置 objectName 属性为“label”,并且设置text属性为“&CellLocation” *选择Line Edit,设置objectName属性为“lineEdit”原创 2017-04-04 21:29:17 · 313 阅读 · 0 评论 -
Qt堆栈窗口QStackWidget
堆栈窗体QStackWidget类多与列表框QListWidget及下拉列表框QComboBox配合使用#include "dialog.h"#include "ui_dialog.h"#include <QHBoxLayout>Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog){ u原创 2017-04-09 12:25:49 · 4371 阅读 · 0 评论 -
Qt分割窗口QSplitter类
效果图: main.cpp#include "qsplitter.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); QSplitter w; w.show(); return a.exec();}widget.cpp#include "wi原创 2017-04-07 21:45:24 · 531 阅读 · 0 评论 -
停靠窗口QDockWidget类
(1)创建一个QDockWidget对象的停靠窗口。 (2)设置它的属性,长用两个方法:setFeature() 和 setAllowedAreas()。 (3)新建一个要插入停靠窗口的控件,常用的有 QListWidget 和 QTextEdit (4)将控件插入停靠窗口,调用QDockWidget的setWidget()方法。 (5)使用addDockWidget()方法在MainWin原创 2017-04-09 10:54:25 · 895 阅读 · 0 评论 -
NULL字符串和empty字符串的区别
一个NULL字符串就是使用QString的缺省构造函数或者使用 “(const char*)0” 作为参数的构造函数创建的QString对象。 而一个empty字符串是一个大小为0的字符串。 一个NULL字符串一定是一个empty字符串,而一个empty字符串未必是一个NULL字符串QString().isNull(); // 结果为 trueQString().isEmpty();原创 2017-03-22 21:33:20 · 1228 阅读 · 0 评论 -
信号和槽机制(Signal & Slot)
1、Qt 提供了信号与槽的机制用于完成界面操作的相应,是完成任意两个Qt对象之间的通信机制。 2、当一个类被继承时,该类的信号与槽也同时被继承,也可以根据需要自定义信号与槽。 3、信号与槽机制的连接方式: (1)一个信号可以与另一个信号相连,代码如下:connect(Object1, SIGNAL(signal1), Object2, SIGNAL(signal1));(2)同一个信号原创 2017-03-21 21:25:42 · 1614 阅读 · 0 评论 -
学习Qt的资源论坛博客等
1 Qt 官方资源 全球各大公司以及独立开发人员每天都在加入 Qt 的开发社区。他们已经认识到了Qt 的架构本身便可加快应用程序开发进度。这些开发人员,无论是想开发单平台软件、还是想开发跨平台软件,都可从 Qt 统一而直接的 API、强大的构建系统以及各种支持工具(例如 Qt Designer)中受益无穷。 Qt具有一个极具活力并十分有益的用户社区,用户可以通过以下方式进行沟通:qt-inter转载 2017-04-20 20:36:46 · 657 阅读 · 0 评论