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

c++?qt自定義搜索編輯框的實現方法

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

實現效果如下:

在這里插入圖片描述

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

自定義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)}");
    // 防止文本框輸入內容位于按鈕之下
    QMargins margins = this->textMargins();
    //設置文本內容左上右下的間隙
    this->setTextMargins(0, 0, m_pBtn->width() + 1, 0);
    this->setPlaceholderText(QStringLiteral("請輸入搜索內容"));
    // 給編輯框設置布局
    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());

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

主界面代碼

#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("搜索內容為空"));
        return;
    }
    QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("搜索內容為%1").arg(context));

其它說明

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

在這里插入圖片描述

釘釘搜索框

在這里插入圖片描述

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

在這里插入圖片描述

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

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

相關文章

  • c語言 深入理解函數的遞歸

    c語言 深入理解函數的遞歸

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

    七夕表白! C語言實現愛情紅玫瑰

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

    C迷途指針詳解

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

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

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

    解析C++編程中的選擇結構和switch語句的用法

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

    詳解C++ 重載運算符和重載函數

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

    一起來學習C語言的輸入和輸出

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

    約瑟夫經典問題擴展成雙向約瑟夫問題

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

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

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

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

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

最新評論

衡山县| 遵化市| 临夏市| 邻水| 安阳县| 临夏市| 岚皋县| 伊通| 望江县| 潜江市| 禄丰县| 银川市| 彰化市| 隆德县| 烟台市| 辰溪县| 三台县| 晋宁县| 澄江县| 柳州市| 鸡西市| 通河县| 深水埗区| 达拉特旗| 贡觉县| 礼泉县| 安溪县| 乌拉特后旗| 鄂托克旗| 漯河市| 缙云县| 乌苏市| 富源县| 罗平县| 科尔| 灵寿县| 葫芦岛市| 湖南省| 延庆县| 高淳县| 张家界市|