資源簡介
1、無邊框窗體,自定義標題欄,鼠標拖動,大小縮放,雙擊切換;
2、自定義一個對話框,自動換行顯示提示信息,可以很方便的調用;
3、自帶提供了四種樣式黑色、藍色、灰色、天藍色風格供選擇
代碼片段和文件信息
#include?“frmmain.h“
#include?“ui_frmmain.h“
#include?“iconhelper.h“
#include?“myhelper.h“
frmMain::frmMain(QWidget?*parent)?:
????QDialog(parent)
????ui(new?Ui::frmMain)
{
????ui->setupUi(this);
????myHelper::FormInCenter(this);
????this->Initstyle();
}
frmMain::~frmMain()
{
????delete?ui;
}
void?frmMain::Initstyle()
{
????//設置窗體標題欄隱藏
????this->setWindowFlags(Qt::framelessWindowHint?|?Qt::WindowSystemMenuHint?|?Qt::WindowMinMaxButtonsHint);
????location?=?this->geometry();
????max?=?false;
????mousePressed?=?false;
????//安裝事件監聽器讓標題欄識別鼠標雙擊
????ui->lab_title->installEventFilter(this);
????Iconhelper::Instance()->SetIcon(ui->btnMenu_Close?QChar(0xf00d)?10);
????Iconhelper::Instance()->SetIcon(ui->btnMenu_Max?QChar(0xf096)?10);
????Iconhelper::Instance()->SetIcon(ui->btnMenu_Min?QChar(0xf068)?10);
????Iconhelper::Instance()->SetIcon(ui->btnMenu?QChar(0xf0c9)?10);
????Iconhelper::Instance()->SetIcon(ui->lab_Ico?QChar(0xf015)?12);
????ui->comboBox_2->addItem(“black“);
????ui->comboBox_2->addItem(“blue“);
????ui->comboBox_2->addItem(“gray“);
????ui->comboBox_2->addItem(“navy“);
}
bool?frmMain::eventFilter(Qobject?*obj?QEvent?*event)
{
????if?(event->type()?==?QEvent::MouseButtondblclick)?{
????????this->on_btnMenu_Max_clicked();
????????return?true;
????}
????return?Qobject::eventFilter(obj?event);
}
void?frmMain::mouseMoveEvent(QMouseEvent?*e)
{
????if?(mousePressed?&&?(e->buttons()?&&?Qt::LeftButton)?&&?!max)?{
????????this->move(e->globalPos()?-?mousePoint);
????????e->accept();
????}
}
void?frmMain::mousePressEvent(QMouseEvent?*e)
{
????if?(e->button()?==?Qt::LeftButton)?{
????????mousePressed?=?true;
????????mousePoint?=?e->globalPos()?-?this->pos();
????????e->accept();
????}
}
void?frmMain::mouseReleaseEvent(QMouseEvent?*)
{
????mousePressed?=?false;
}
void?frmMain::on_btnMenu_Close_clicked()
{
????qApp->exit();
}
void?frmMain::on_btnMenu_Max_clicked()
{
????if?(max)?{
????????this->setGeometry(location);
????????Iconhelper::Instance()->SetIcon(ui->btnMenu_Max?QChar(0xf096)?10);
????????ui->btnMenu_Max->setToolTip(“最大化“);
????}?else?{
????????location?=?this->geometry();
????????this->setGeometry(qApp->desktop()->availableGeometry());
????????Iconhelper::Instance()->SetIcon(ui->btnMenu_Max?QChar(0xf079)?10);
????????ui->btnMenu_Max->setToolTip(“還原“);
????}
????max?=?!max;
}
void?frmMain::on_btnMenu_Min_clicked()
{
????this->showMinimized();
}
void?frmMain::on_pushButton_clicked()
{
????myHelper::ShowMessageBoxInfo(“恭喜你獲得我公司送出的1000萬元大禮一份!“);
}
void?frmMain::on_pushButton_2_clicked()
{
????int?result?=?myHelper::ShowMessageBoxQuesion(“確定真的不要我了嗎?“);
????if?(result?==?1)?{
????????myHelper::ShowMessageBoxInfo(“你好狠心啊!“);
????}?else?{
????????myHelper::ShowMessageBoxInfo(“親愛的我就知道你不會離開我的!“);
????}
}
void?frmMain::on_pushButton_3_clicked()
{
????myHelper::ShowMessageBoxError(“天空飄來五個字!“);
}
void?frmMa
- 上一篇:嵌入式工程師面試寶典
- 下一篇:W5500PCB和原理圖
評論
共有 條評論