当在Q程序中自定义窗体时,需要创建按钮实现窗口的关闭,最小化和最大化,用下面的方式感觉......
connect(ui->PB_min, &QPushButton::clicked, this, &TitleBar::onClicked);
connect(ui->PB_max, &QPushButton::clicked, this, &TitleBar::onClicked);
connect(ui->PB_close, &QPushButton::clicked, this, &TitleBar::onClicked);
void TitleBar::onClicked()
{
//QObject::Sender()返回发送信号的对象的指针,返回类型为QObject *
QPushButton *pButton = qobject_cast<QPushButton *>(sender());
if (this->isTopLevel())
{
//判断发送信号的对象使哪个按钮
if (pButton == ui->PB_min)
{
this->showMinimized(); //窗口最小化显示
}
else if (pButton == ui->PB_max)
{
this->isMaximized() ? pWidget->showNormal() : pWidget->showMaximized(); //窗口最大化/还原显示
}
else if (pButton == ui->PB_close)
{
this->close(); //窗口关闭
}
}
}