1、dialog.h:头文件
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QTextEdit>
#include <QPushButton>
#include <QListWidget>
#include <QTreeWidget>
class Dialog : public QDialog
{
Q_OBJECT
public:
Dialog(QWidget *parent = 0);
~Dialog();
void init();
void initLayout();
private:
QListWidget *_lstWgt;
QTreeWidget *_treeWgt;
};
#endif // DIALOG_H
2、dialog.cpp:源文件
#include "dialog.h"
#include <QHBoxLayout>
#include <QListWidgetItem>
#include <QTreeWidgetItem>
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
init();
initLayout();
}
Dialog::~Dialog()
{
}
void Dialog::init()
{
_lstWgt = new QListWidget;
_lstWgt->setFixedSize(QSize(300, 300));
_lstWgt->setStyleSheet(tr("QListWidget{font:20px solid;color:rgb(20,20,20);border:none;border-radius:4px;show-decoration-selected:1;}"
"QListWidget::item{color:rgba(20,20,20,250);background:transparent;border:none;padding-left:12px;padding-top:5px;padding-bottom:5px;}"
"QListWidget::item:hover{color:rgba(250,250,250,250);background:qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 rgba(1,8,156,220),stop:1 rgba(1,91,179,220));border:none;}"
"QListWidget::item:selected{color:rgba(250,250,250,250);background:qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 rgba(1,8,156,220),stop:1 rgba(1,91,179,220));border:none;}"
"QListWidget::item:selected:!active{color:rgba(250,250,250,250);background:qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 rgba(1,8,156,220),stop:1 rgba(1,91,179,220));border:none;}"));
for (int i = 0; i < 20; ++i) {
QListWidgetItem *pItem = new QListWidgetItem(tr(""));
pItem->setSizeHint(QSize(300, 50));
_lstWgt->insertItem(i, pItem);
//QLabel *lbl = new QLabel(tr("江枫渔火对愁眠"));
//_lstWgt->setItemWidget(pItem, lbl);
QTextEdit *pEdt = new QTextEdit(tr("姑苏城外寒山寺"));
pEdt->setReadOnly(true);
pEdt->setFocusPolicy(Qt::NoFocus);
pEdt->viewport()->setCursor(Qt::PointingHandCursor);
pEdt->setStyleSheet("font:22px solid;background-color:transparent;color:#1f1f1f;border:none;border-radius:4px;");
_lstWgt->setItemWidget(pItem, pEdt);
}
_treeWgt = new QTreeWidget;
_treeWgt->setHeaderHidden(true);
_treeWgt->setFixedSize(QSize(300, 300));
_treeWgt->setColumnCount(1);
for (int i = 0; i < 10; ++i) {
QTreeWidgetItem *pTreeItem = new QTreeWidgetItem(_treeWgt);
pTreeItem->setText(0, tr("一级菜单:%1").arg(i + 1));
_treeWgt->addTopLevelItem(pTreeItem);
for (int j = 0; j < 3; ++j) {
QTreeWidgetItem *child = new QTreeWidgetItem(QStringList() << tr("二级菜单:%1").arg(j + 1));
pTreeItem->addChild(child);
}
}
_treeWgt->expandAll();
}
void Dialog::initLayout()
{
QHBoxLayout *hLay = new QHBoxLayout(this);
hLay->setMargin(12);
hLay->setSpacing(16);
hLay->addWidget(_lstWgt);
hLay->addWidget(_treeWgt);
}
3、运行界面: