原理就是图片和按钮,进行组合
直接上代码
.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
QLabel *m_pLogoLabel=nullptr;
QLineEdit *m_pSearchEdit=nullptr;
QPushButton *m_pSearchBtn=nullptr;
};
#endif // WIDGET_H
.cpp
#pragma execution_character_set("utf-8")
#include "widget.h"
#include <QPixmap>
#include <QHBoxLayout>
#include <QStringListIterator>
#include <QAction>
#include <QIcon>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
this->setStyleSheet("background:white");
QPixmap pixMap("C:/Users/dujia/Desktop/1.png");
m_pLogoLabel=new QLabel(this);
m_pLogoLabel->setPixmap(pixMap);
m_pLogoLabel->setAlignment(Qt::AlignCenter);
QString str=QStringLiteral("百度");
m_pSearchEdit=new QLineEdit(this);
m_pSearchBtn=new QPushButton(str.toLocal8Bit(),this);
m_pSearchBtn->setFixedSize(100,30);
m_pSearchEdit->setFixedHeight(30);
m_pSearchBtn->setStyleSheet("background:rgb(78,110,242);color:white;border-radius:3px");
m_pSearchEdit->setStyleSheet("QLineEdit{border:2px groove rgb(78,110,242);border-radius:5px;padding:2px 4px}");
QAction *iconEditAction=new QAction(this);
iconEditAction->setIcon(QIcon("C:/Users/dujia/Desktop/2.png"));
m_pSearchEdit->addAction(iconEditAction,QLineEdit::TrailingPosition);
QHBoxLayout *BtnLayout=new QHBoxLayout(this);
BtnLayout->addStretch();
BtnLayout->addWidget(m_pSearchEdit);
BtnLayout->addWidget(m_pSearchBtn);
BtnLayout->addStretch();
BtnLayout->setMargin(0);
BtnLayout->setSpacing(0);
QWidget *BtnWgt=new QWidget(this);
BtnWgt->setLayout(BtnLayout);
QVBoxLayout *mainLayout=new QVBoxLayout(this);
mainLayout->addWidget(m_pLogoLabel);
mainLayout->addWidget(BtnWgt);
mainLayout->setMargin(100);
mainLayout->setSpacing(20);
mainLayout->addStretch();
this->setLayout(mainLayout);
}
Widget::~Widget()
{
}
运行效果:
写着玩的。不足的地方请指教。
图片是自己从百度上截取的。