<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()
{
 
}

在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 23:48:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 23:48:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 23:48:03       87 阅读
  4. Python语言-面向对象

    2024-03-29 23:48:03       96 阅读

热门阅读

  1. Webgl学习系列-认识Webgl

    2024-03-29 23:48:03       40 阅读
  2. 第八章 编译时编程

    2024-03-29 23:48:03       33 阅读
  3. 利用TCP发布GNSS数据(ROS2转ROS1)

    2024-03-29 23:48:03       43 阅读
  4. excel 快捷键表

    2024-03-29 23:48:03       37 阅读
  5. 【嵌入式——QT】QByteArray

    2024-03-29 23:48:03       50 阅读
  6. 速成软件书:真的是神器吗?

    2024-03-29 23:48:03       44 阅读
  7. 战略定位--选择什么赛道。成为什么样的企业。

    2024-03-29 23:48:03       35 阅读
  8. Ubuntu22.04安装WordPress教程

    2024-03-29 23:48:03       35 阅读
  9. CCF-CSP认证考试 202212-4 聚集方差 100分题解

    2024-03-29 23:48:03       32 阅读
  10. 基于机器视觉的智能物流机器人的设计与开发

    2024-03-29 23:48:03       30 阅读
  11. 基于AOP实现自定义注解

    2024-03-29 23:48:03       39 阅读
  12. ARM的开源硬件

    2024-03-29 23:48:03       41 阅读