qt 带标题侧边导航栏,加渐变选中颜色
时间: 2023-11-16 21:06:27 浏览: 50
你可以使用QDockWidget类来实现带标题的侧边导航栏,然后使用QPalette类来设置渐变选中颜色。
以下是一个示例代码:
```cpp
#include <QMainWindow>
#include <QDockWidget>
#include <QListWidget>
#include <QPalette>
#include <QLinearGradient>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr)
: QMainWindow(parent)
{
// 创建一个 QDockWidget
QDockWidget *dockWidget = new QDockWidget(tr("Navigation"), this);
dockWidget->setFeatures(QDockWidget::NoDockWidgetFeatures);
// 创建一个 QListWidget 并将其设置为 QDockWidget 的中心窗口
QListWidget *listWidget = new QListWidget(dockWidget);
dockWidget->setWidget(listWidget);
// 将 QDockWidget 添加到主窗口的左侧
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
// 设置渐变选中颜色
QPalette palette = listWidget->palette();
QLinearGradient gradient(0, 0, 1, listWidget->height());
gradient.setColorAt(0, QColor(255, 255, 255, 0));
gradient.setColorAt(0.5, QColor(0, 0, 255, 100));
gradient.setColorAt(1, QColor(255, 255, 255, 0));
palette.setBrush(QPalette::Highlight, gradient);
listWidget->setPalette(palette);
}
};
```
在此示例中,我们创建一个QMainWindow并在其左侧添加一个QDockWidget,然后将一个QListWidget设置为QDockWidget的中心窗口。最后,我们使用QPalette类设置渐变选中颜色。