Qt实践录:界面设置小记

本文记录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 年初七,疫情更加严峻,阳光普照,周边无碍

发布了481 篇原创文章 · 获赞 244 · 访问量 110万+

猜你喜欢

转载自blog.csdn.net/subfate/article/details/104122599