最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c++?qt自定義搜索編輯框的實現(xiàn)方法

 更新時間:2022年03月21日 14:34:18   作者:令狐掌門  
這篇文章主要介紹了c++?qt自定義搜索編輯框,通過自定義QLineEdit,在編輯框里添加布局,將按鈕設(shè)置在右邊,當(dāng)點擊按鈕搜索按鈕時發(fā)送信號到主界面做相應(yīng)的操作,需要的朋友可以參考下

實現(xiàn)效果如下:

在這里插入圖片描述

實現(xiàn)方法說明:
(1)自定義QLineEdit,在編輯框里添加布局,將按鈕設(shè)置在右邊
(2)給自定義QLineEdit添加信號,當(dāng)點擊按鈕搜索按鈕時發(fā)送信號到主界面做相應(yīng)的操作

自定義LineEdit

csearchlineedit.h

#ifndef CSEARCHLINEEDIT_H
#define CSEARCHLINEEDIT_H

#include <QLineEdit>
#include <QPushButton>
#include <QWidget>
class CSearchLineEdit : public QLineEdit
{
    Q_OBJECT
public:
    CSearchLineEdit(QWidget* parent = nullptr);
signals:
    void sig_search(const QString& context);
private slots:
    void on_ClickedSearch();
private:
    QPushButton *m_pBtn = nullptr;
};
#endif // CSEARCHLINEEDIT_H

csearchlineedit.cpp

#include "csearchlineedit.h"
#include <QHBoxLayout>

CSearchLineEdit::CSearchLineEdit(QWidget* parent)
    :QLineEdit(parent)
{
    m_pBtn = new QPushButton(this);
    m_pBtn->setCursor(Qt::PointingHandCursor);
    m_pBtn->setFixedSize(22, 22);
    m_pBtn->setToolTip(QStringLiteral("搜索"));
    m_pBtn->setStyleSheet("QPushButton{border-image:url(:/images/icon_search_normal); background:transparent;} \
                                     QPushButton:hover{border-image:url(:/images/icon_search_hover)} \
                                     QPushButton:pressed{border-image:url(:/images/icon_search_press)}");
    // 防止文本框輸入內(nèi)容位于按鈕之下
    QMargins margins = this->textMargins();
    //設(shè)置文本內(nèi)容左上右下的間隙
    this->setTextMargins(0, 0, m_pBtn->width() + 1, 0);
    this->setPlaceholderText(QStringLiteral("請輸入搜索內(nèi)容"));
    // 給編輯框設(shè)置布局
    QHBoxLayout *pSearchLayout = new QHBoxLayout(this);
    pSearchLayout->addStretch();
    pSearchLayout->addWidget(m_pBtn);
    pSearchLayout->setSpacing(0);
    pSearchLayout->setContentsMargins(0, 0, 0, 0);
    this->setLayout(pSearchLayout);
    connect(m_pBtn, &QPushButton::clicked, this, &CSearchLineEdit::on_ClickedSearch);
}
void CSearchLineEdit::on_ClickedSearch()
    // 其它邏輯
    emit sig_search(this->text());

注意這里是在主界面接收搜索按鈕的點擊事件,槽函數(shù)的參數(shù)是搜索內(nèi)容,const QString&,當(dāng)然也可以在CSearchLineEdit里處理,不過一般習(xí)慣把控件代碼和邏輯代碼分開,盡量不在控件類里處理業(yè)務(wù)邏輯。

主界面代碼

#include "widget.h"
#include <QLineEdit>
#include <QPushButton>
#include <QMessageBox>
#include <QHBoxLayout>
#include "csearchlineedit.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    resize(400, 300);
    setWindowTitle(QStringLiteral("自定義搜索框"));
    CSearchLineEdit *pLineEdit = new CSearchLineEdit(this);
    QVBoxLayout *pLayout = new QVBoxLayout();
    pLayout->addWidget(pLineEdit);
    pLayout->setContentsMargins(10, 10, 10, 10);
    setLayout(pLayout);
    connect(pLineEdit, &CSearchLineEdit::sig_search, this, &Widget::onSearch);
}
Widget::~Widget()
void Widget::onSearch(const QString& context)
    if (context.isEmpty())
    {
        QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("搜索內(nèi)容為空"));
        return;
    }
    QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("搜索內(nèi)容為%1").arg(context));

其它說明

除了可以在右邊添加按鈕,還可以在左邊添加按鈕,只要合理的設(shè)置LineEdit的文本與左右兩邊控件的間隙即可。比如下面的自定義編輯框:
優(yōu)酷搜索框

在這里插入圖片描述

釘釘搜索框

在這里插入圖片描述

這些都是可以實現(xiàn)的,優(yōu)酷則需要用qss把LineEdit的四周圓角設(shè)為高度的一半,右側(cè)按鈕的圓角也設(shè)為高度的一半,這樣就實現(xiàn)了;釘釘?shù)乃阉骺騽t是搜索按鈕在左邊;二者的搜索功能都會有彈出對話框的功能,例如釘釘

在這里插入圖片描述

這個也可以做,LineEdit獲得焦點時,彈出對話框即可。

到此這篇關(guān)于c++ qt自定義搜索編輯框的文章就介紹到這了,更多相關(guān)c++ 編輯框內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c語言 深入理解函數(shù)的遞歸

    c語言 深入理解函數(shù)的遞歸

    這一章講解的是函數(shù)的遞歸,因為遞歸函數(shù)是一個非常重要求解復(fù)雜問題的方法之一,在學(xué)習(xí)算法的過程之中我們也會遇到他,所以我想對它進行一次講解,希望能幫助其他人,也能幫助我自己來梳理一遍。下面我會通過一些題目的講解去認(rèn)識遞歸函數(shù)
    2022-02-02
  • 七夕表白! C語言實現(xiàn)愛情紅玫瑰

    七夕表白! C語言實現(xiàn)愛情紅玫瑰

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)愛情紅玫瑰,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • C迷途指針詳解

    C迷途指針詳解

    這篇文章主要介紹了C迷途指針,迷途指針又稱為懸空指針、野指針,其對C程序的安全性與穩(wěn)定性影響巨大,本文對其原理與檢測方法做了較為詳盡的分析,需要的朋友可以參考下
    2014-09-09
  • C語言手把手教你實現(xiàn)貪吃蛇AI(上)

    C語言手把手教你實現(xiàn)貪吃蛇AI(上)

    這篇文章主要介紹了C語言手把手教你實現(xiàn)貪吃蛇AI,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法

    解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法

    這篇文章主要介紹了解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • 詳解C++ 重載運算符和重載函數(shù)

    詳解C++ 重載運算符和重載函數(shù)

    這篇文章主要介紹了C++ 重載運算符和重載函數(shù)的的相關(guān)資料,文中示例代碼非常詳細,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 一起來學(xué)習(xí)C語言的輸入和輸出

    一起來學(xué)習(xí)C語言的輸入和輸出

    這篇文章主要為大家詳細介紹了C語言的輸入和輸出,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 約瑟夫經(jīng)典問題擴展成雙向約瑟夫問題

    約瑟夫經(jīng)典問題擴展成雙向約瑟夫問題

    今天小編就為大家分享一篇關(guān)于約瑟夫經(jīng)典問題擴展成雙向約瑟夫問題,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Visual?Studio中的解決方案中不顯示項目分析

    Visual?Studio中的解決方案中不顯示項目分析

    這篇文章主要為大家介紹了Visual?Studio中的解決方案中不顯示項目問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • C++?左值引用與一級指針示例詳解

    C++?左值引用與一級指針示例詳解

    這篇文章主要介紹了C++?左值引用與一級指針,本文給大家介紹了C++?(左值)引用和指針簡介,結(jié)合示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09

最新評論

运城市| 永泰县| 平和县| 离岛区| 铁岭县| 荔浦县| 正宁县| 广河县| 砚山县| 静海县| 中方县| 葫芦岛市| 舒城县| 邢台市| 鄂温| 讷河市| 新疆| 涞水县| 云浮市| 鲁山县| 永昌县| 婺源县| 攀枝花市| 耒阳市| 丹寨县| 兴海县| 安平县| 潜江市| 当阳市| 永靖县| 临江市| 广水市| 东明县| 广水市| 云和县| 朔州市| 大余县| 磐石市| 武安市| 时尚| 屯昌县|