本文记录QT界面、窗体,等等的设置。
QMessageBox使用
// 一个提示语
QMessageBox msg(QMessageBox::NoIcon, tr("title"), tr("exit?"), QMessageBox::Yes | QMessageBox::No, NULL);
if (msg.exec() == QMessageBox::Yes)
{
QApplication* app;
app->exit(0); // 退出程序
}
窗口最大化和最小化
主窗口初始化函数。
// 设置窗体最大化和最小化
Qt::WindowFlags winFlags = Qt::Dialog;
winFlags |= Qt::WindowMinMaxButtonsHint; // 同时最大最小化
// winFlags |= Qt::WindowMinimizeButtonHint;
// winFlags |= Qt::WindowMaximizeButtonHint;
winFlags |= Qt::WindowCloseButtonHint;
setWindowFlags(winFlags);
// 显示策略,不调用默认showNormal
// showMinimized();
// showMaximized();
// showFullScreen();
// showNormal();
窗体可拖动
默认只有标题框可拖动。头文件及函数声明(实际是重载):
#include <QMouseEvent>
void mousePressEvent(QMouseEvent *event); // 鼠标按下
void mouseMoveEvent(QMouseEvent *event); // 鼠标移动
void mouseReleaseEvent(QMouseEvent *event); // 鼠标释放
int m_pressMouse; // 当点击下拉框时,窗口跳动,加上判断
QPoint m_startPos;
QPoint m_windowPos;
实现函数:
void MainWindow::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
m_startPos = event->globalPos();
m_windowPos = this->frameGeometry().topLeft();
m_pressMouse = 1;
}
else if(event->button() == Qt::RightButton)
{
}
}
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() == Qt::LeftButton)
{
if (m_pressMouse)
{
QPoint relativePos = event->globalPos() - m_startPos;
this->move(m_windowPos + relativePos );
}
}
else if(event->button() == Qt::RightButton)
{
}
}
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
{
m_pressMouse = 0;
}
添加logo
制作logo.ico,放至工程目录。
方法1:
在.pro工程文件末尾添加:RC_ICONS = logo.ico
。编译即可。不改代码。
方法2:
新建 demo.rc 文件,内容:
IDI_ICON1 ICON DISCARDABLE "logo.ico"
在.pro工程文件末尾添加:RC_FILE = demo.rc
。编译,即可。不改代码。
方法3:
使用代码:
QPixmap pixmap(":/image/logo.ico");
this->setWindowIcon(pixmap);
李迟 2020.1.31 年初七,疫情更加严峻,阳光普照,周边无碍