★QT学习笔记
liuyanfeier
acmer
展开
-
控件设置背景色 以及 QPushButton 隐藏边框
setStyleSheet("background-color: rgb(255, 255, 255);"); setStyleSheet("border:none"); //隐藏边框线QPushButton::setFlat(true);原创 2016-10-09 11:01:47 · 23800 阅读 · 1 评论 -
setShortcuts() 函数
setShortcuts()函数,用于说明快捷键。Qt的QKeySequence为我们定义了很多内置的快捷键,比如我们使用的Open。你可以通过查阅API文档获得所有的快捷键列表。这个与我们自己定义的有什么区别呢?简单来说,我们完全可以自己定义一个tr(“Ctrl+O”)来实现快捷键。原因在于,这是Qt跨平台性的体现。比如PC键盘和Mac键盘是不一样的,一些键在PC键盘上有,而Mac键盘上可能并不存原创 2016-10-06 13:16:15 · 3700 阅读 · 0 评论 -
快捷键
简单实用的Qt Creator编译器的快捷键1 ).Ctrl+ Tab快速切换已打开的文件 2 ).快速打开输出窗口:按Alt +数字键(1-7)可以快速打开对应的输出窗口。 3).F4 在 头文件(.h) 和 实现文件(.cpp) 之间进行切换。 4).Ctrl + / 注释/取消注释选定内容。 5).Ctrl + i 自动缩进选中代码。 6).Ctrl + shift + up 将当前原创 2016-10-06 13:17:24 · 196 阅读 · 0 评论 -
QIcon
QIcon类代表图标,实现在 QtGui 共享库中。QIcon 对象可以认为是一系列图像的组合,每个图像代表窗口在某种状态下应该显示的图标。 QIcon 类支持以下构造函数:QIcon(); // 构造一个空图像构成的图标QIcon(const QPixmap &pixmap); // 从 Pixmap 对象构造函数QIcon(const原创 2016-10-06 13:18:11 · 12184 阅读 · 0 评论 -
colck例子的改造
对Qt里面的colck圆盘时钟例子的改进,使可以显示到秒的级别。#include <QtWidgets>#include "analogclock.h"//! [0] //! [1]AnalogClock::AnalogClock(QWidget *parent)//! [0] //! [2] : QWidget(parent)//! [2] //! [3]{//! [3] //!原创 2016-10-06 13:18:58 · 450 阅读 · 0 评论 -
QT 使QLabel可以进行交互
简单的问题,可是因为对接口不了解导致一直不能实现这样的功能,还是要多积累。QLabel::setTextInteractionFlags(Qt::TextSelectableByMouse);//设置文本内容可被鼠标选择原创 2016-10-06 13:19:27 · 1262 阅读 · 0 评论 -
QT鼠标点击窗口外的部分使窗口隐藏
使用事件过滤器来实现protected: bool eventFilter(QObject *o, QEvent *e);//事件过滤器bool chatEmotion::eventFilter(QObject *o , QEvent *e){ if(QEvent::WindowDeactivate == e->type())//窗口停用 { hide();//原创 2016-10-06 13:20:06 · 6436 阅读 · 1 评论 -
Qt 给主窗口添加背景但不覆盖控件
Qwidget中:w.setStyleSheet("QWidget {background-image:url(:/pics/bgPortrait.jpg)}");QMainWindow中:w.setStyleSheet("QMainWindow{background-image: url(:/pics/bgPortrait.jpg)}");原创 2016-10-06 13:20:58 · 7073 阅读 · 6 评论 -
Qlabel添加动图
QLabel *label = new QLabel();QMovie *movie = new QMovie("D:/Project/Qt/firstQT/2.gif");label->setMovie(movie);movie->start();label->show();原创 2016-10-06 13:21:16 · 1233 阅读 · 0 评论 -
Qt重绘标题栏
#ifndef FRAME_H#define FRAME_H#include <QFrame>class QToolButton;class CustomFrame : public QFrame{ Q_OBJECTpublic: explicit CustomFrame(QWidget *contentWidget, const QString &title);publ原创 2016-10-06 13:22:39 · 2669 阅读 · 0 评论 -
Qt 获取光标 隐藏标题栏
QTextEdit或者其他的文本编辑器显示调用下面的接口函数就可以了。setFocus(); //获取光标隐藏标题栏w.setWindowFlags(Qt::FramelessWindowHint);w.setAttribute(Qt::WA_TranslucentBackground);原创 2016-10-06 13:23:13 · 343 阅读 · 0 评论 -
简单的将一个html(xml)文本中的img标签(图片)提取出来的方法
int i = 0; int j = 0; QMovie* movie; while (i < paramstr.length()) { i = paramstr.indexOf("<img src=", j); if (i != -1) { j = paramstr.ind原创 2016-10-06 13:23:38 · 3314 阅读 · 0 评论 -
QPixmap,QBitmap,QImage,QPicture
QPixmap专门为图像在屏幕上的显示做了优化; QBitmap是QPixmap 的一个子类,它的色深限定为 1,你可以使用QPixmap的 isQBitmap()函数来确定这个QPixmap是不是一个 QBitmap。QImage 专门为图像的像素级访问做了优化。 QPicture则可以记录和重现QPainter的各条命令。下面我们将分两部分介绍这四种绘图设备。QPixmap继承了 QPaintD原创 2016-10-06 13:15:46 · 1141 阅读 · 0 评论 -
对象树
QObject是以对象树的形式组织起来的。当你创建一个 QObject对象时,会看到QObject的构造函数接收一个 QObject指针作为参数,这个参数就是 parent,也就是父对象指针。这相当于,在创建 QObject对象时,可以提供一个其父对象,我们创建的这个 QObject对象会自动添加到其父对象的 children()列表。当父对象析构的时候,这个列表中的所有对象也会被析构。(注意,这里原创 2016-10-06 13:14:30 · 1315 阅读 · 0 评论 -
设置QLabel的大小自动和文本一样
label->setMinimumSize(label->width(), label->height());label->setMaximumSize(label->width(), label->height());label->setScaledContents(true); //自动和文本一样的高度layout1->insertWidget(layout1->count - 1, l原创 2016-10-09 11:02:17 · 11082 阅读 · 0 评论 -
控件添加到QScrollArea实现滚动效果
domeMainWindow::MainWindow(QWidget *parent) : QWidget(parent){ QScrollArea *pArea = new QScrollArea(); pAddButton = new QPushButton(); QWidget *pWidget = new QWidget(); pWidget->se原创 2016-10-09 11:02:57 · 7080 阅读 · 0 评论 -
设置子窗口显示的时候相对主窗口的位置
setGeometry(mapToGlobal(chatEmotion1->pos()).x(), mapToGlobal(chatEmotion1->pos()).y() - mychat_face->height(), 100 , 100);原创 2016-10-09 11:03:20 · 4335 阅读 · 0 评论 -
QScrollArea里面添加控件的时候,自动滚到到最后
使用槽函数来实现。connect(pArea->verticalScrollBar(), &QAbstractSlider::rangeChanged, this, &MainWindow::slider);void MainWindow::slider(){ pArea->verticalScrollBar()->setValue(pArea->verticalScrollBar()->原创 2016-10-09 11:04:13 · 2877 阅读 · 0 评论 -
qt程序打包命令
windeployqt xxx.exe原创 2016-10-09 11:04:31 · 743 阅读 · 0 评论 -
信号槽
信号槽在 Qt 5 中,QObject::connect()有五个重载:QMetaObject::Connection connect(const QObject *, const char *, const QObject *, const char *,原创 2016-10-06 13:02:58 · 303 阅读 · 0 评论 -
.pro文件
.pro文件初识打开一个新建的工程,其中.pro文件里面的内容是这样的:QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = QMianWindowTEMPLATE = appSOURCES += main.cpp\ mainwindow.cppHEADERS += mainwi原创 2016-10-06 13:06:00 · 775 阅读 · 0 评论 -
tr()函数
函数tr()简单了解用tr的有两类人: (1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr (2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种: (2a) 用tr包住英文(推荐的用法,源码英文,然后提供英文到其他语言的翻译包) (2b) 用tr包住中文(源码用中文,然后提供中文到其他语言的翻译包)tr 是做什么的?下面二者的区别原创 2016-10-06 13:08:41 · 8066 阅读 · 0 评论 -
布局管理器
Qt 提供了几种布局管理器供我们选择:QHBoxLayout:按照水平方向从左到右布局; QVBoxLayout:按照竖直方向从上到下布局; QGridLayout:在一个网格中进行布局,类似于 HTML 的 table。其中QGridLayout *layout = new QGridLayout; layout->addWidget(button1,0,0,1,3); 表示的是butt原创 2016-10-06 13:09:03 · 204 阅读 · 0 评论 -
arg()函数
QString中的arg()方法在QT的QString中,arg方法类似于C中的printf中使用的格式输出符(只是有点类似)。大概有以下三种替换的方法。 使用arg(str1, str2, str3)这种方法进行替换。 使用arg(str1).arg(str2).arg(str3)这种方法进行替换。 使用arg(int, int, int)这种方式进行替换。1) 使用arg(str1,原创 2016-10-06 13:13:22 · 26468 阅读 · 1 评论 -
容器Containers
容器ContainersQt 提供了顺序存储容器:QList,QLinkedList,QVector,QStack和QQueue。对于绝大多数应用程序,QList是最好的选择。虽然它是基于数组实现的列表,但它提供了快速的向前添加和向后追加的操作。如果你需要链表,可以使用QLinkedList。如果你希望所有元素占用连续地址空间,可以选择QVector。QStack和QQueue则是 LIFO 和 F原创 2016-10-06 13:13:58 · 911 阅读 · 0 评论 -
改变滚动条式样
//改变高滚动条式样 pArea->setStyleSheet("QScrollArea{background:transparent;}" //transparent "QScrollBar::vertical{background:#efefef;border:-5px solid white;margin:6px 10px 5px 0p原创 2016-10-06 13:24:08 · 584 阅读 · 0 评论