QT-实现串口命令发送列表(一)

类似功能:

 

当然功能不会实现这里的全部,只做一些基本的功能:

1- 列表有输入框,发送按钮,单击按钮可以读取输入框文本发送

2- 读取配置文件生成命令列表

3- 可以吧命令列表信息保存到配置文件

4- 可以增删命令列表

5- 双击按钮可以更改按钮名字

先实现第一个功能:

1- 列表有输入框,发送按钮

 

 

单击按钮可以读取输入框文本发送

 

实现思路,就是参考前面实现下载列表

1- 实现自己的类QWidget,继承QWidget,里面定义一些必要控件

 

2- 自己的类QWidget的构造函数中要初始化这些控件

  //使用水平布局类

    horLayout = new QHBoxLayout();

    //主要控件

    ineEdit = new QLineEdit();

    Button  = new QPushButton();



    //item

    item = new QListWidgetItem();



    //设置左侧、顶部、右侧和底部边距

    horLayout->setContentsMargins(0, 0, 0, 0);

    //表示各个控件之间的上下间距

    horLayout->setSpacing(5);

    //添加控件到布局器

    horLayout->addWidget(ineEdit);

    horLayout->addWidget(Button);



    //QWidget设置布局

    setLayout(horLayout);



    //设置item

    QSize size = item->sizeHint();

    item->setSizeHint(QSize(size.width(), 35));



    setSizeIncrement(size.width(), 35);

3- 添加按钮事件

 

 

 

4- UI界面中添加一个listWidget

 

5- 主函数使用我们的类

 

全部源码:my_widget.h

#ifndef MY_WIDGET_H

#define MY_WIDGET_H



#include <QWidget>

#include <QHBoxLayout>

#include <QLineEdit>

#include <QPushButton>

#include <QSize>

#include <QListWidgetItem>

class my_widget : public QWidget

{

    Q_OBJECT

public:

    explicit my_widget(QWidget *parent = nullptr);



    ~my_widget();



    //使用水平布局类

    QHBoxLayout *horLayout;

    //主要控件

    QLineEdit   *ineEdit;

    QPushButton *Button ;



    //添加到widget需要用item

    QListWidgetItem *item;



signals:



public slots:

    void on_pbutton_clicked();



};



#endif // MY_WIDGET_H

全部源码:my_widget.cpp

#include "my_widget.h"

#include <QDebug>

my_widget::my_widget(QWidget *parent) : QWidget(parent)

{



    //使用水平布局类

    horLayout = new QHBoxLayout();

    //主要控件

    ineEdit = new QLineEdit();

    Button  = new QPushButton();



    //item

    item = new QListWidgetItem();



    //设置左侧、顶部、右侧和底部边距

    horLayout->setContentsMargins(0, 0, 0, 0);

    //表示各个控件之间的上下间距

    horLayout->setSpacing(5);

    //添加控件到布局器

    horLayout->addWidget(ineEdit);

    horLayout->addWidget(Button);



    //QWidget设置布局

    setLayout(horLayout);



    //设置item

    QSize size = item->sizeHint();

    item->setSizeHint(QSize(size.width(), 35));



    setSizeIncrement(size.width(), 35);



    //连接按钮事件

    QObject::connect(Button ,SIGNAL(clicked()),this,SLOT(on_pbutton_clicked()));



}



my_widget::~my_widget()

{

    delete item;

    delete Button;

    delete ineEdit;

    delete horLayout;



}



void my_widget::on_pbutton_clicked(){



    qDebug() << "on_pbutton_clicked is : " +ineEdit->text();

}

全部源码:MainWindow.cpp

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include "QLineEdit"

#include "QListView"

#include "QVBoxLayout"

#include "QHBoxLayout"

#include "QLabel"

#include "QProgressBar"

#include "QPushButton"

#include "QIcon"

#include "QFont"

#include "QListWidgetItem"

#include "QSize"

#include "QString"



#include "my_widget.h"



/*

 * 实现一个列表,里面有 lineEdit button

 *

 *

 *

 *

 */





MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);



int i=0;

while(i++<10)

{

    //创建widget

    my_widget *mwidget =new my_widget(this);



    //设置文本和按钮的文本

    mwidget->Button->setText(QString::number(i));

    mwidget->ineEdit->setText(QString::number(i));



    //把item添加到listWidget

    ui->listWidget->addItem(mwidget->item);



    //将item与widget联系

    ui->listWidget->setItemWidget(mwidget->item, mwidget);

}

}



MainWindow::~MainWindow()

{

    delete ui;

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值