Start of Navbar
This commit is contained in:
21
src/main.cpp
21
src/main.cpp
@@ -1,8 +1,29 @@
|
||||
#include <QApplication>
|
||||
#include <QWidget>
|
||||
#include <QVBoxLayout>
|
||||
#include <QDebug>
|
||||
|
||||
#include "ui/navbar.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
|
||||
QWidget window;
|
||||
window.resize(800, 500);
|
||||
|
||||
auto *layout = new QVBoxLayout(&window);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->setSpacing(0);
|
||||
|
||||
auto *navBar = new NavBar(&window);
|
||||
layout->addWidget(navBar);
|
||||
layout->addStretch();
|
||||
|
||||
QObject::connect(navBar, &NavBar::addressEntered, [](const QString &text) {
|
||||
qDebug() << "navigate to:" << text;
|
||||
});
|
||||
|
||||
window.show();
|
||||
return app.exec();
|
||||
}
|
||||
|
||||
48
src/ui/navbar.cpp
Normal file
48
src/ui/navbar.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
#include "navbar.h"
|
||||
|
||||
#include <QToolButton>
|
||||
#include <QLineEdit>
|
||||
#include <QHBoxLayout>
|
||||
#include <QStyle>
|
||||
|
||||
NavBar::NavBar(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
auto *layout = new QHBoxLayout(this);
|
||||
layout->setContentsMargins(6, 6, 6, 6);
|
||||
layout->setSpacing(6);
|
||||
|
||||
m_back = new QToolButton(this);
|
||||
m_back->setIcon(style()->standardIcon(QStyle::SP_ArrowBack));
|
||||
m_back->setAutoRaise(true);
|
||||
|
||||
m_forward = new QToolButton(this);
|
||||
m_forward->setIcon(style()->standardIcon(QStyle::SP_ArrowForward));
|
||||
m_forward->setAutoRaise(true);
|
||||
|
||||
m_refresh = new QToolButton(this);
|
||||
m_refresh->setIcon(style()->standardIcon(QStyle::SP_BrowserReload));
|
||||
m_refresh->setAutoRaise(true);
|
||||
|
||||
m_address = new QLineEdit(this);
|
||||
m_address->setPlaceholderText("Enter a URL");
|
||||
m_address->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
|
||||
layout->addWidget(m_back);
|
||||
layout->addWidget(m_forward);
|
||||
layout->addWidget(m_refresh);
|
||||
layout->addWidget(m_address);
|
||||
|
||||
connect(m_back, &QToolButton::clicked, this, &NavBar::backClicked);
|
||||
connect(m_forward, &QToolButton::clicked, this, &NavBar::forwardClicked);
|
||||
connect(m_refresh, &QToolButton::clicked, this, &NavBar::refreshClicked);
|
||||
|
||||
connect(m_address, &QLineEdit::returnPressed, this, [this] {
|
||||
emit addressEntered(m_address->text());
|
||||
});
|
||||
}
|
||||
|
||||
QLineEdit *NavBar::addressBar() const
|
||||
{
|
||||
return m_address;
|
||||
}
|
||||
28
src/ui/navbar.h
Normal file
28
src/ui/navbar.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
class QToolButton;
|
||||
class QLineEdit;
|
||||
|
||||
class NavBar : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit NavBar(QWidget *parent = nullptr);
|
||||
|
||||
QLineEdit *addressBar() const;
|
||||
|
||||
signals:
|
||||
void backClicked();
|
||||
void forwardClicked();
|
||||
void refreshClicked();
|
||||
void addressEntered(const QString &text);
|
||||
|
||||
private:
|
||||
QToolButton *m_back;
|
||||
QToolButton *m_forward;
|
||||
QToolButton *m_refresh;
|
||||
QLineEdit *m_address;
|
||||
};
|
||||
Reference in New Issue
Block a user