窗口、按钮

 //创建一个按钮
    QPushButton *btn1=new QPushButton;
    //btn依赖于的窗口
    btn1->setParent(this);
    //显示文本
    btn1->setText("第一个按钮");

    QPushButton *btn2=new QPushButton("1234",this);
    //移动控件
    btn1->resize(100,150);
    btn1->move(100,100);

    //重置窗口大小
    resize(512,512);
    //设置固定窗口大小
    //setFixedSize(512,512);
    //设置窗口标题
    setWindowTitle("测试窗口");

信号与槽

自定义的信号与槽

发出信号

 槽

 

 槽函数

 信号连接信号:通过信号来触发信号

断开信号:disconnect()

Lambda表达式(匿名函数)

Qt-Lambda表达式_03_Nemo-CSDN博客

[capture](parameters)mutable->return-type
{
    statement
}

[]:标志着函数的开始

=:值传递,所有可用变量

&:引用传递

this:

菜单栏和工具栏、状态栏、铆接部件

二、QMainWindow  菜单栏和工具栏

//菜单栏最多只有一个
    //菜单栏创建
    QMenuBar * bar=new QMenuBar();
    //QMenuBar * bar1=menuBar();
    //将菜单栏放入窗口
    setMenuBar(bar);
    //创建菜单
    QMenu* filename1= bar->addMenu("文件");
    QMenu* filename2= bar->addMenu("编辑");
    //创建菜单项
    filename1->addAction("新建");
    //添加分隔符
    filename1->addSeparator();
    filename1->addAction("保存");
    filename2->addAction("撤销");

    //工具栏 可以有多个
    QToolBar * toolBar = new QToolBar(this);
  //  addToolBar(toolBar);
    //停靠区域
    addToolBar(Qt::LeftToolBarArea,toolBar);
    //后期只允许左右停靠
    //工具栏添加内容
    toolBar->addAction("1");
    //添加小的控件  按钮
    QPushButton * btn =new QPushButton("按钮",this);
    toolBar->addWidget(btn);

              

三、QMainWindow状态栏、浮动窗口、铆接部件、中心部件

3.1 状态栏

提示信息        最多只有一个

    //状态栏
    QStatusBar *stBar=new QStatusBar();
    //放入窗口
    setStatusBar(stBar);
    //放标签控件
    QLabel *label1 =new QLabel("提示信息",this);
    stBar->addWidget(label1);
    QLabel *label2 =new QLabel("右侧提示信息",this);
    stBar->addPermanentWidget(label2);

    //铆接键  浮动窗口  可以有多个  浮动窗口围绕着核心做的
    QDockWidget *dockbar=new QDockWidget("浮动",this);
    addDockWidget(Qt::BottomDockWidgetArea,dockbar);

    //设置中心部件    只能有一个
    QTextEdit  *edit=new QTextEdit(this);
    setCentralWidget(edit);

四、资源文件的添加

QT 添加资源文件_technologyleader的专栏-CSDN博客_qt添加资源文件

五、模态和非模态对话框创建QDialog

模态:不可以再对其他窗口做操作

非模态:可以再对其他窗口做操作

标准对话框:

消息对话框:

其他标准对话框:颜色对话框、警告对话框、提问对话框

六、登录窗口布局

七、控件

QT常用按钮介绍_bloke_come的博客-CSDN博客

按钮:

1、QPushButton 推动按钮
典型应用:确定(OK)、应用(Apply)、撤消(Cancel)、关闭(Close)、是(Yes)、否(No)和帮助(Help)等。该按钮是矩形的,并且通常显示一个文本标签来描述它的操作。

QPushButton *pushbutton = new QPushButton("&Help", this);
// 常用构造
QPushButton ( QWidget * parent = 0 )//构造一个没有文本的推动按钮,参数为parent。
QPushButton ( const QString & text, QWidget * parent = 0 )
QPushButton ( const QIcon & icon, const QString & text, QWidget * parent = 0 )

2、QRadioButton 单选按钮
QRadioButton窗口部件为单选按钮提供了一个文本标签,是一个能够切换开(选择)或者关(没有选择)的选择按钮。通常单选按钮是用于当前用户选择许多中的一个选项。在同一时刻,单选按钮组中仅仅只有一个按钮被选择;如果用户选择其他按钮,以前选择的按钮将要切换为关闭状态。

QRadioButton::QRadioButton ( QWidget * parent = 0 )
QRadioButton::QRadioButton ( const QString & text, QWidget * parent = 0 )

3、QCheckBox 复选按钮
QCheckBox窗口部件提供一个带文本标签的复选按钮,QCheckBox和QRadioButton都是选项按钮,能够在开(选中)或者关(未选中)之间切换,QCheckBox和QRadioButton的区别是在于对用户选择的限制。单选按钮定义了“多选一”的选择,而复选按钮定义了“多选多”的选择。
QButtonGroup在视觉上能够把许多的复选按钮组合在一起,成为一个按钮组。

无论复选按钮选中或者是未选中,它都会发射一个信号toggled()。在任何时刻,如果您想改变复选按钮的状态的时候,需要连接toggled()信号触发这个行为。您也可以利用isChecked()函数来查询复选按钮是否被选中。
利用checkState()函数来查询当前的切换状态也可以使用,文本可以通过构造函数或者setText()来设置,图标可以通setIcon()来设置。

 

//  构造一个参数为parent的复选按钮,但是该按钮不显示文本信息。
QCheckBox::QCheckBox ( QWidget * parent = 0 )
QCheckBox::QCheckBox ( const QString & text, QWidget * parent = 0 )
//  返回复选框的复选状态。也可以参考setCheckState()函数和Qt::CheckState。
Qt::CheckState QCheckBox::checkState () const
//  参数state是用来设置复选框的复选状态。
void QCheckBox::setCheckState ( Qt::CheckState state )
// 当复选框的状态改变的时候,就是发射stateChanged()信号。也就是说,用来检查用户选择还是没有选择。
void QCheckBox::stateChanged ( int state )   [signal]

工具按钮:显示图片或文字或叠加

单选按钮:

多选按钮:

八、QListWidget(3个)

Qt5.9中控件listWidget用法(QListWidget基本用法)_净无邪博客-CSDN博客_qlistwidget

Qt中QTreeWidget根据数据库内容动态构建目录_azazssaz2的博客-CSDN博客_qt qtreewidget

Qt中tableWidget的样式总结_听风的雨滴-CSDN博客_qt tablewidget

九、其他控件

十、自定义控件及封装

十一、Qt中的鼠标事件

QT开发(六)—— 鼠标,键盘事件_刘桂林的博客-CSDN博客_qt键盘事件

十二、定时器

qt定时器精度_半宛清愁的博客-CSDN博客_qt定时器精度

Qt 定时器 QTimer_吾生也有涯,而知也无涯-CSDN博客_qt定时器

十三、event事件分发器

十四、事件过滤器

十五、绘图事件

十六、文件操作

十七、Qt串口类

当前的QtSerialPort模块中提供了两个C++类,分别是QSerialPort 和QSerialPortInfo。

QSerialPort 类提供了操作串口的各种接口。

QSerialPortInfo 是一个辅助类,可以提供计算机中可用串口的各种信息。

使用方法:

Qt 串口通信(QSerialPort)_shenmingyi.blog.csdn.net-CSDN博客_qt串口通信

Qt 串口类QSerialPort 使用笔记_Ivan 的专栏-CSDN博客

1.包含头文件

#include "QtSerialPort/QSerialPort"         //提供了操作串口的各种接口
#include "QtSerialPort/QSerialPortInfo"     //是一个辅助类,可以提供计算机中可用串口的各种信息

2.在pro文件中增加如下内容:

QT += serialport

3.要先获取到 可连接的所有的串口的名字

QSerialPortInfo::availablePorts()
[static] QList<QSerialPortInfo> QSerialPortInfo::availablePorts()
Returns a list of available serial ports on the system.
返回系统上可用串行端口的列表

void MainWindow::GetSerialNames()
{
    QStringList m_serialPortName;
    foreach(const QSerialPortInfo &info,QSerialPortInfo::availablePorts())
    {
        m_serialPortName << info.portName();
        qDebug()<<"serialPortName:"<<info.portName();
    }
}

        通常,我们需要指定程序使用某一个确定的串口,这时不能只使用串口名称,因为USB串口每次插在不同的USB口上时获得的串口名称都可能有变化。这时可以利用串口的序列号,这个号码一般来说是唯一的,比如下面的代码,首先遍历所有的串口,找到我们需要的串口后就返回。 

        QSerialPort 负责具体的串口操作。选定串口后,要先打开串口,才能设置波特率等参数。这些参数都设置好了就可以使用了。最基本的操作无非是read() 和 write()。需要注意的是这两个操作都是非阻塞的。

另外有一个重要的signal 也需要用到,那就是 void QIODevice::readyRead()

每次串口收到数据后都会发出这个signal。我们的程序中需要定义一个slot,并将其与这个signal 相连接。这样,每次新数据到来后,我们就可以在slot中读取数据了。这时一定要将串口缓冲区中的数据全部读出来,可以利用readAll() 来实现。
QT的串口类QSerialPort_FunkyFrog821951259的博客-CSDN博客

4.根据串口名字,打开相应串口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_42475191

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值