Qt常用功能指南

Qt 常用功能指南
部件常用功能
对象/组件 属性 描述 接口 备注
QWidget windowTitle 描述部件的窗口标题 QString windowTitle() const;

void setWindowTitle(const QString &);

size 描述部件的大小(不包含框架) QSize size() const;

void resize(int h, int w);
enabled 描述部件的可用性 bool isEnabled() const;

void setEnabled(bool);
visible 描述部件的可见性 bool isVisible() const;

void setVisible(bool);
QAbstractButton checkable 描述部件能否被选中 bool isCheckable() const;

void setCheckable(bool); 槽 click 使用的最多
checked 描述部件是否被选中 bool isChecked() const;

void setChecked(bool);
shortcut 描述按钮助记符 QKeySequence shortcut() const;

void setShortcut(const QKeySequence &);
text 描述按钮上显示的文本 QString text() const;

void setText(const QString &);
QPushButton QPushButton 使用的基本上是继承自父类的方法,需要注意的是有一个 QMenu *menu(); 的成员函数,能够获取设置在按钮上菜单。
QRadioButton 单选按钮,知道获取选中状态(isChecked)的方法就好了。
QCheckBox tristate 描述按钮是否为三态按钮 bool isTristate() const;

void setTristate(bool) 普通的选中的用法与单选按钮是一样的。
QLIstWidget count 描述列表中项目的数量 int count() const; 列表部件常用操作:
添加列表项 void addItem(const Qstring &);

删除列表项 QListWidgetItem *takeItem(int);

设置选中项 void setCurrentRow(int);
void setCurrentItem(QListWidgetItem*);

获取当前项 QListWidgetItem *currentItem();

获取指定项
QListWidgetItem *item(int); 通过此函数,能够遍历列表
currentRow 描述当前项目是第几行 int currentRow() const;

void setCurrentRow();
sortingEnabled 描述列表能否进行排序 bool isSortingEnabled() const;

void setSortingEnabled();
QtableWidget columnCount 描述表格有多少列 int columnCount() const;

void setColumnCount(int); 使用步骤:
首先设置行数与列数setRowCount,setColumnCount,然后设置列头setHorizontalLabels,最后设置数据,setItem

排序 sortItems

过滤通过 findItems 与 setRowHidden 实现
rowCount 描述表格有多少行 int rowCount() const;

void setRowCount(int);
QGroupBox title 描述部件的标题文本 QString title() const;

void setTitle(const QString &);
QTabWidget tabShape 描述部件页签的形状 QTabWidget::TabShape tabShape() const;

void setTabShape(QTabWidget::TabShape);
movable 描述部件页签是否能够移动 bool isMovable() const;

void setMovable(bool);
QComboBox currentText 描述部件当前显示的文本 QString currentText() const;

void setCurrentText(const QString &);
QLineEdit text 描述当前显示的文本 QString text() const;

void setText(const QString &);
QTextEdit plainText 纯文本 QString toPlainText() const;

void setPlainText(const QString &);
html QString toHtml() const;

void setHtml(const QString &);
markdown QString toMarkdown(QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub) const

void setMarkdown(const QString &);
QSpinBox minimum 描述旋转按钮设置的最小值 int minimum() const;

void setMinumum(int); QDoubleSpinBox 与 QSpinBox 是类似的用法
maximum 描述旋转按钮设置的最大值 int maximum() const;

void setMaximum(int);
value 描述旋转部件上的值 int value() const;

void setValue(int);
QPlainTextEdit plainText 纯文本 QString plainText() const;

void setPlainText(const QString &);

事件常用功能
事件处理顺序:事件过滤器——焦点部件event函数——焦点部件事件处理函数
事件类型 接口 常用操作
定时器事件 timerEvent(QTimerEvent ); 启动定时器startTimer
关闭定时器killTimer
窗口关闭事件 closeEvent(QCloseEvent
); 接受关闭accept
不接受关闭 ignore

实例:文档关闭操作
鼠标事件 mouseDoubleClickEvent(QMouseEvent *); 实例:窗口点击标题栏使窗口最大化与正常化来回切换
mouseMoveEvent(QMouseEvent *); 获取鼠标位置void pos() const函数

设置鼠标路径跟踪void setMouseTracking(bool);
mousePressEvent(QMouseEvent *); 鼠标按压/点击事件
mouseReleaseEvent(QMouseEvent *); 鼠标释放事件
滚轮事件 wheelEvent(QWheelEvent *); 垂直滚轮转动的角度angleDalta() / 8;

编译指令
名称 变量 ·描述
TEMPLATE app,应用程序 生成项目时指定模板名称
lib,库
subdirs,在子目录中构建项目,子目录使用SUBDIRS指定
QT 添加或删除qt库
HEADERS 定义项目的头文件
SOURCES 定义项目的源文件
TARGET 指定生成的目标文件名
CONFIG 指定项目配置和编译器选项
FORMS 指定UI文件
DESTDIR 指定存放目标文件的路径
INCLUDEPATH 指定编译项目时应搜索的#include目录。插件项目中可能使用到。

影子构建:Qt 项目模式下有一个Shadow build勾选框,目的是将项目的源码与编译生成的文件分别存放。
Echo Plugin Example:这个例子展示了如何创建一个低级的Qt插件,大致分为三个步骤

  1. 创建插件接口
  2. 实现插件接口
  3. 加载插件
    问题:target.path是什么意思?
    之后的任务,对象模型与容器类,常用工具类,2D绘图,网络编程,进程和线程
    2D绘图
    对象/组件 接口 描述
    QPainter void drawLine(const QPoint &, const QPoint &);
    void drawPoint(const QPoint &);
    void drawRect(int, int, int, int);
    void drawRoundRect(int , int, int, int, qreal, qreal);
    void setRenderHint(QPainter::RenderHint); 反走样/抗锯齿
    void translate(qreal, qreal); 平移坐标系
    void scale(qreal, qreal); 缩放坐标系
    void rotate(qreal); 旋转坐标系
    void save(); 保存画家状态
    void restore(); 恢复画家状态

QPen
QBrush
QPixmap 使用方法相似,需要注意load函数与save函数。 主要用来在屏幕上显示图像
QImage 主要用来I/O处理,提供像素级别的访问
QBitmap 处理颜色深度为1的图像
QPicture 用来记录并重演QPainter命令

容器
对象/组件 接口 接口描述 组件描述
QByteArray [static] QByteArray QByteArray::fromHex(const QByteArray &hexEncoded); 返回一个以十六进制解码的字节数组(30->0)
[since 5.9] QByteArray QByteArray::toHex(char separator = ‘\0’) const; 返回字节数组的十六进制编码(30->33 30)

网络编程
QHostInfo
使用主机名查找IP地址,或使用IP地址查找主机名
[static] int QHostInfo::lookupHost(const QString &name, QObject *receiver, const char *member);
[static] QHostInfo QHostInfo::fromName(const QString &name);

QNetworkInterface
获取本机网络接口信息
[static] QList QNetworkInterface::allInterfaces();
[static] QList QNetworkInterface::allAddresses();
QString QNetworkInterface::hardwareAddress() const;

QUdpSocket,UDP数据传输,不可靠/数据报/无连接传输层协议
常用API接口

绑定IP地址与端口号
[virtual, since 5.0] bool QAbstractSocket::bind(const QHostAddress &address, quint16 port = 0, QAbstractSocket::BindMode mode = DefaultForPlatform);
[since 5.0] bool QAbstractSocket::bind(quint16 port = 0, QAbstractSocket::BindMode mode = DefaultForPlatform);
[since 6.2] bool QAbstractSocket::bind(QHostAddress::SpecialAddress addr, quint16 port = 0, QAbstractSocket::BindMode mode = DefaultForPlatform);
绑定是为了接口来自其他主机的数据,如果只是发送数据,并不需要进行绑定。

发送数据
qint64 QUdpSocket::writeDatagram(const char *data, qint64 size, const QHostAddress &address, quint16 port);
[since 5.8] qint64 QUdpSocket::writeDatagram(const QNetworkDatagram &datagram);
qint64 QUdpSocket::writeDatagram(const QByteArray &datagram, const QHostAddress &host, quint16 port);

接收数据
qint64 QUdpSocket::readDatagram(char *data, qint64 maxSize, QHostAddress *address = nullptr, quint16 *port = nullptr);
[since 5.8] QNetworkDatagram QUdpSocket::receiveDatagram(qint64 maxSize = -1);
[signal] void QIODevice::readyRead();
bool QUdpSocket::hasPendingDatagrams() const;
qint64 QUdpSocket::pendingDatagramSize() const;

其他API
套接字不论什么时候都有一个状态,状态如果发生变化,会发送一个相关的信号。
套接字不论什么阶段发生错误,都会发送一个包含错误信息的信号。

错误状态的展示存在问题,问题解决了无法重置文本。(暂未解决)

从新看一遍没问题,关键是为什么重新看一遍,目的是什么,不重新看信不信,看完过后确定就可以吗?我需要个理由。

以不同的编码方式发送数据会有什么问题?

对常用的ASCll表常用的知识学习记忆。
发送数据123,为什么得到的是313233

界面IP地址与端口号使用配置文件存储(QSetting)
重新启动软件与前一次启动软件所处的位置相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值