Qt5 学习积累

目录

1.cout/cin

头文件:
#include<QTextStream>
需要对cout/cin进行定义

QTextStream cout(stdout,QIODevice::WriteOnly);
QTextStream cin(stdin,QIODevice::ReadOnly);

2.随机数

头文件:

#include <QTime>
#include <QtGlobal>

种子:

qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));

随机数:

int n=qrand()%100;

3.QSting、 string、QChar,、char等的转换

  1. QString转string
string s=qstr.toStdString();
  1. string转QString
QString qstr=QString::fromStdString(s);
  1. 转换后乱码处理
std::string cstr;
QString qstring;
//从std::string 到QString
qstring = QString(QString::fromLocal8Bit(cstr.c_str()));
//从QString 到 std::string
cstr = string((const char *)qstring.toLocal8Bit());
//不需要从gbk转到utf8
QString value_content = QString::fromStdString(vec[i].content);
QString value_classname = QString::fromStdString(vec[i].classname);
  1. QChar转char
QChar qch='e';
char ch=qch.toLatin1();
  1. char转QChar
char ch='w';
QChar qch=QChar(ch);
  1. char *转QString
char *ch="Today";
QString qstr=QString(QLatin1String(ch));

4.退出

头文件:
#include <qapplication.h>

connect(quit,SIGNAL(clicked()),qApp,SLOT(quit()));

5.Qt::tr()

函数tr()全名是QObject::tr(),被它处理的字符串可以 使用工具提 取出来翻译 成其他语言, 也就是做国际化使用。

只要记住,Qt的最佳实践:如果你想让你的程序国际化的话,那么,所有用户可见的字符串都要使用QObject::tr()!但是,为什么我们没有写 QObject::tr(),而仅仅是tr()呢?原来,tr()函数是定义在Object里面的,所有使用了Q_OBJECT宏的类都自动具有tr()函数。

6.QFrame::shape,shadow

  1. setFrameShape( QFrame.Shape shape) - 设置QFrame类窗口的边框,

shape有以下属性:

  • NoFrame:无边框
  • Box:矩形框
  • Panel:凸起或凹陷的面板
  • WinPanel: Windows 2000风格的面板,可以是凸起或下沉。边框的宽度是2像素。此属性是为了与旧版本的Qt兼容而存在的;
  • HLine:水平线(用作分隔符);
  • VLine:垂直线(用作分隔符);
  • StyledPanel:依据当前GUI类型,画一个矩形面板,可以凸起或下沉
  1. setFrameShadow(QFrame.Shadow shadow) - 设置QFrame类窗口的阴影,shadow有以下属性:
  • Plain,0x010:无阴影
  • Raised,0x020:面板凸起
  • Sunken,0x030:面板下沉
  1. setFrameStyle(int style) - 同时设置边框和女阴影。style是QFrame.Shape和QFrame.Shadow的"|"组合。

7.QComboBox::setSizeAdjustPolicy

设置下拉列表框尺寸的调整策略

QComboBox *com=new QComboBox;
com->setSizeAdjustPolicy(QComboBox::AdjustToContents);
  1. QComboBox::AdjustToContents
    下拉列表框符合内容的大小
  2. QComboBox::AdjustToContentsOnFirstShow;
    组合框会在第一次显示时调整其内容。
  3. QComboBox::AdjustToMinimumContentsLength
    使用AdjustToContents或者AdjustToContentsOnFirstShow代替。
  4. QComboBox:: AdjustToMinimumContentsLengthWithIcon
    组合框将调整为最小contentslength加上图标的空间。

8.QToolBox中加入部件

需要使用addItem()函数

int QToolBox::addItem(QWidget *widget, const QIcon &iconSet, const QString &text)
int QToolBox::addItem(QWidget *w, const QString &text)
QQ::QQ(QWidget *parent,Qt::WindowFlags f):QToolBox(parent,f)
{
    this->addItem((QWidget*)box1,"好友");
    this->addItem((QWidget*)box2,"同学");
    this->addItem((QWidget*)box3,"黑名单");
}

9.事件函数

void QWidget::moveEvent(QMoveEvent *event)
Qwidget中的虚函数,可在派生类中重新定义。响应窗体移动事件(窗体移动,会自动调用这个函数)

void QWidget::resizeEvent(QResizeEvent *event)
Qwidget中的虚函数,可在派生类中重新定义。响应对话框大小调整事件(对话框大小改变,会自动调用)

void QWidget::paintEvent(QPaintEvent *event)
Qwidget中的虚函数,可在派生类中重新定义。重绘事件(1.调用了repaint()或update(),2.小部件被掩盖了,现在被发现了。都会自动调用这个函数)

10.QPen

1.QPen()
2. QPen(Qt::PenStyle style)
3. QPen(const QColor &color)
4. QPen(const QBrush &brush, qreal width, Qt::PenStyle style = Qt::SolidLine, Qt::PenCapStyle cap = Qt::SquareCap, Qt::PenJoinStyle join = Qt::BevelJoin)
QBrush,width,PenStyle,PenCapStyle,PenJoinStyle;5个参数

  1. QPen(const QPen &pen)
  2. QPen(QPen &&pen)

(end)后面更新

上一篇:zqt_helper 轻松开发Qt5 Widgets应用


下一篇:Qt5十大最常用功能之一个函数轻松实现系统托盘图标功能