本章将上一个窗口的标题栏窗口提取出来作为一个自定义窗口,方便在设计大型程序时可以统一窗口外观。
自定义标题窗口
1、设计UI
先按照下图格式设计一个标题栏窗口:
这里并没有对按钮的外观做更多的修饰,本章只是起到抛砖引玉的作用,若想做到更好的UI效果,还需要大家下去自行设计和实现。标题栏包含一个icon,一个文本显示,最小和最大化按钮以及一个关闭按钮。
2、实现按钮功能
在构造函数中,我们将最小和关闭按钮分别连接parent窗口的最小和关闭事件,点击最大按钮时,如果是正常显示就将parent窗口最大化,否则就还原窗口。
ezTitleBar::ezTitleBar(QWidget *parent) :
QWidget(parent), ui(new Ui::ezTitleBar)
{
Q_ASSERT(parent!=nullptr);
ui->setupUi(this);
connect(ui->btnMin, SIGNAL(clicked(bool)), this->parentWidget(), SLOT(showMinimized()));
connect(ui->btnExit, SIGNAL(clicked(bool)), this->parentWidget(), SLOT(