avatar
Articles
140
Tags
0
Categories
18
首页
归档
标签
分类
友链
李瑞琦的博客
首页
归档
标签
分类
友链

李瑞琦的博客

16 Qt的事件机制
Created2025-06-04|08-Qt
Qt的事件机制 Qt是个事件驱动的编程框架,各种事件的产生和处理伴随着整个程序运行的主轴,因此搞懂事件处理机制非常重要。Qt的信号槽底层也是利用事件机制来实现的! 1.事件的定义1.1定义事件是由程序内部或外部产生的事情或某种动作的通称。比如用户按下键盘或鼠标,就会产生一个键盘事件或鼠标事件(这是由程序外部产生的事件);再如,当窗口第一次显示时,会产生一个绘制事件,以通知窗口需要重新绘制其自身,从而使该窗口可见(这是由程序内部产生的事件) 。 1.2事件与信号的区别 信号的发送者和接受者都是QObject派生类的对象,属于==对象-对象==之间的通信 事件通常来自底层的操作系统,或手动调用的。它的发送者是事件循环,接收者都是QObject派生类对象,属于==事件循环-对象==之间的通信。(本质上是操作系统-事件循环-对象 ...
17 定时器
Created2025-06-04|08-Qt
定时器Qt有2种方式实现定时器的功能 1.使用QTimer类QTimer类非常简单使用,只需创建一个该对象,设置周期即可,在开启后,他会定时发出timeout()的信号,我们可以直接使用槽函数连接该信号。 1.1常用函数:123void setInterval(int msec); //设置周期void start(std::chrono::milliseconds msec);void start(void);//个人感觉它的start()应该是和QThread一样,创建了个新的线程 1.2使用信号槽123QTimer *timer = new QTimer(this);connect(timer, &QTimer::timeout, this, QOverload<>::of(&AnalogClock::update));timer->start(1000); 使用 定时器 +...
18 控件 TableWidget
Created2025-06-04|08-Qt
TableWidget1.初始化表格开发时一般在QT Designer 中拖拽一个QTableWidget到页面上,设置好布局后在UI页面对应的cpp文件中对表格进行操作即可,不过QTableWidget此时是空白的 1.1设置表头123456789101112QStringList headerList;headerList << QString::fromLocal8Bit("学号") << QString::fromLocal8Bit("姓名") << QString::fromLocal8Bit("语文") << QString::fromLocal8Bit("数学") << QString::fromLocal8Bit("英语")...
06 控件 各种按键
Created2025-06-04|08-Qt
Qt中的各种按键1. 按钮基类 QAbstractButton 在QT中为我们提供了可以直接使用的按钮控件, 如下图。这些按钮种类虽然繁多, 但是它们都拥有相同的父类 QAbstractButton。这些子类按钮的大部分属性都是从这个基类继承的,因此搞明白这个类为我们提供的相关功能还是非常重要的。 这些按键的继承关系如下: 下面介绍一下按键基类QAbstractButton类的常用API: 1.1按键的文字和图标1234567891011121314// 参数text的内容显示到按钮上void QAbstractButton::setText(const QString &text);// 得到按钮上显示的文本内容, 函数的返回就是QString QAbstractButton::text() const;// 得到按钮设置的图标QIcon icon() const;// 给按钮设置图标void setIcon(const QIcon &icon);// 得到按钮图标大小QSize iconSize() const//...
07 控件 ComboBox
Created2025-06-04|08-Qt
QComboBox QComboBox下拉列表框是一个组合控件(包含一个文本显示控件和一个按钮)。它默认显示最小的控件给用户来操作,并且可以用下拉选择的界面提供给用户更多的预置选项。 它是直接继承自QWidget。 1.基本操作QComboBox的主要功能主要包括以下几点: 1.1添加项下拉框的内容有两种增加方式:追加和指定位置添加。 12m_combox->addItem("星期四"); //追加项目m_combox->insertItem(2,"星期五"); //指定位置添加项目 还有一种增加的方法:批量增加。用一个可迭代的数据就可以 12345QList<QString> com_list;com_list.append("星期一"); com_list.append("星期二"); com_list.append("星期三");m_combox->addItems(com_list); ...
09 QWidget
Created2025-06-04|08-Qt
QWidget类QWidget类是所有控件、对话框、窗口类的父类, 并且QWidget类的父类的QObject, 也就意味着所有的窗口类对象只要指定了父对象, 都可以实现==内存资源的自动回收==。 1.1设置父对象123456789// 构造函数QWidget::QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());// 公共成员函数// 给当前窗口设置父对象void QWidget::setParent(QWidget *parent);void QWidget::setParent(QWidget *parent, Qt::WindowFlags f);// 获取当前窗口的父对象, 没有父对象返回 nullptrQWidget *QWidget::parentWidget() const; 1.2设置窗口位置123456789101112//------------- 窗口位置 -------------//...
08 控件 各种输入控件
Created2025-06-04|08-Qt
Qt中的各种输入控件1.QSpinBox功能作用:处理整数以及离散数据。 可以通过步长调节器按钮控制也可以通过文本框输入 可以给数字加前后缀 2.QDial 3.QScrollBar 4.QSlider
10 对话框
Created2025-06-04|08-Qt
Qt中的对话框 QDialog是对话框的基类,且它继承于QWidget,并有自己的一些特性。 1.常用API123456789101112131415161718// 构造函数//构造函数第二个形参为窗口标志,默认为 `Qt::Dialog = 0x0000 0002 | Qt::Window`。//只要该标志位包含`Qt::Window`,则该对象是一个窗口,窗口就是一种顶层的部件。QDialog::QDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());// 模态显示窗口[virtual slot] int QDialog::exec();// 隐藏模态窗口, 并且解除模态窗口的阻塞, 将 exec() 的返回值设置为 QDialog::Accepted[virtual slot] void QDialog::accept();// 隐藏模态窗口, 并且解除模态窗口的阻塞, 将 exec() 的返回值设置为 QDialog::Rejected[virtual slot]...
12 文件IO及路径
Created2025-06-04|08-Qt
...
11 容器控件
Created2025-06-04|08-Qt
容器控件 容器类控件用于存放别的控件,之前在设计UI界面时,把所有控件都放到最顶层的QWidget中然后布局,这样做的缺点是整体布局非常麻烦,因此可以使用容器类控件,把场上所有的控件分成几部分分别放入不同的容器中布局,然后在顶层窗口中对容器再布局就行了。 Qt中能用作容器的控件主要有上面几种,下面就简单介绍一下。 1.QWidget前面说到过QWidget是所有可视化窗口的基类,如果不指定父对象的话他就是一个独立的窗口;如果指定父对象,它就是作为一个容器而存在于父对象内。默认情况下QWidget是完全空白的。 关于这些属性大部分都有对应的API函数, 在属性名前加 set即可, 大家可以自己从 QWidget这个类里边搜索, 并仔细阅读关于这些函数的参数介绍。 2.QFrameQFrame继承QWidget,在外观上QWidget完全空白,而QFrame能够设置边框的阴影、线宽、形状等。 3.QGroupBoxQGroupBox继承QWidget,在这种类型的窗口中可以绘制边框、给窗口指定标题,...
123…14
avatar
Li Ruiqi
总有低谷
Articles
140
Tags
0
Categories
18
Follow Me
Categories
  • 01-计算机基础八股12
  • 02-开发工具11
    • CMake7
  • 03-C++15
  • 04-Linux39
    • 01-Linux基本操作6
    • 02-系统移植7
    • 03-内核开发19
    • 04-应用开发7
  • 05-MCU28
    • 01-FreeRTOS6
    • 02-STM329
    • 03-MSP4304
    • 04-LVGL4
  • 06-嵌入式硬件5
  • 07-RISC-V3
  • 08-Qt20
  • 09-ROS7
Website Info
Article Count :
140
Unique Visitors :
Page Views :
Last Update :
©2019 - 2025 By Li Ruiqi
Framework Hexo|Theme Butterfly
人因梦想而伟大