<QT基础(3)>QLineEdit使用笔记

LineEdit

这次要用的是两个功能:初始化展示参数值,修改参数值。

初始化

将l_num的默认值显示

    ui.lineEdit->setText(QString::number(l_num));

信号

  • textChanged() 文本发生改变
  • textEdited() 文本编辑信号
  • cursorPositionChanged()光标发生改变
  • returnPressed() 回车键或return按键按下信号
  • editingFinished() 回车键或return按键按下信号或者焦点丢失信号
  • selectionChanged() 只要选择改变这个信号就会被发射

目前觉得好用的是editingFinished和returnPressed, 暂时使用editingFinished。

    connect(ui.lineEdit, SIGNAL(editingFinished()), this, SLOT(lineEditset()));
//textChanged   cursorPositionChanged
    //editingFinished  selectionChanged returnPressed() 

槽函数

把键入lineedit的值赋给后台参数。

void DcmImgPro::lineEditset()
{
    l_num = ui.lineEdit->text().toInt();
}

当然这里没有针对键入值做异常判定,应该有。

void DcmImgPro::lineEditset() {
    bool ok;
    int new_num = ui.lineEdit->text().toInt(&ok);
    
    if (!ok) {
        QMessageBox::warning(this, "Error", "Invalid input! Please enter a valid integer.");
    } else {
        l_num = new_num;
    }
}

总体代码

实现了向ScrollArea内部填充指定数量的QLabel,作为Dicom图像的预览窗口。

#pragma once

#include <QtWidgets/QMainWindow>
#include <QtWidgets>
#include "ui_dcmimgpro.h"

class DcmImgPro : public QMainWindow
{
    Q_OBJECT

public:
    DcmImgPro(QWidget *parent = nullptr);
    ~DcmImgPro();

private:
    Ui::DcmImgProClass ui;
private slots:
    void pushbtn();
    void lineEditset();
private:
    int l_num = 15;
};

class ScrollableWidget:public QWidget
{
public:
    ScrollableWidget(int numWidgets)
    {
        QVBoxLayout* layout = new QVBoxLayout(this);
        for (int i = 0; i < numWidgets; i++)
        {
            QWidget* widget = new QWidget;
            QString msg = "Label_" + QString::number(i);
            QLabel* label = new QLabel(msg);
            QVBoxLayout* widgetlayout = new QVBoxLayout(widget);
            widgetlayout->addWidget(label);
            layout->addWidget(widget);
        }
    };

};
#include "dcmimgpro.h"

DcmImgPro::DcmImgPro(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    ui.scrollArea->setWidgetResizable(true);
    ScrollableWidget* scrollableWidget = new  ScrollableWidget(l_num);
    ui.scrollArea->setWidget(scrollableWidget);
    ui.lineEdit->setText(QString::number(l_num));
    connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(pushbtn()));
    connect(ui.lineEdit, SIGNAL(editingFinished()), this, SLOT(lineEditset()));
    //textChanged   cursorPositionChanged
    //editingFinished  selectionChanged returnPressed() 
}

void DcmImgPro::pushbtn()
{
    ui.scrollArea->setWidget(nullptr);
    ScrollableWidget* scrollableWidget = new  ScrollableWidget(l_num);
    ui.scrollArea->setWidget(scrollableWidget);
}

void DcmImgPro::lineEditset()
{
    l_num = ui.lineEdit->text().toInt();
}
DcmImgPro::~DcmImgPro()
{
 
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wdmcs

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值