Qt项目开发遇到的问题2:初始界面的设计问题(无边框的页面等)

1.基础的知识:

固定窗口大小

resize(1400,900);

设置使主界面最小尺寸为1200*400;保证窗口的美观

ui->centralWidget->setMinimumSize(1200,400);

无边框设计:

有了这一条之后就可以实现窗口的放大和缩小了,把鼠标放在窗口边,就能使之改变大小,这个比较方便快捷,其他方法我找了很多但都不算太好

setWindowFlags( Qt::CustomizeWindowHint);

由于没有了边框,我们手动添加按钮,添加关闭,最小化,最大化按钮:
    //关闭窗口
    connect(ui->closebtn,&QPushButton::clicked,this,&MainWindow::close);
    //最小化
    connect(ui->minbtn,&QPushButton::clicked,this,&MainWindow::showMinimized);
    //最大化,再次点击恢复窗口大小
    connect(ui->maxbtn,&QPushButton::clicked,this,[&](){
        if(minandmax==0)
        {
            connect(ui->maxbtn,&QPushButton::clicked,this,&MainWindow::showMaximized);
            minandmax = 1;
        }
        else
        {
            connect(ui->maxbtn,&QPushButton::clicked,this,&MainWindow::showNormal);
            minandmax = 0;
        }
    });

2.然后是添加背景图片,这里有个问题,就是如何让背景图片自适应显示:
//设置背景图片自适应
void MainWindow::setBackgroundImage(QPixmap &pixmap)
{
    //判断图片是否为空
    if(pixmap.isNull()){

        return;
    }
    //设置窗口的背景
    QPalette    palette = this->palette();
    palette.setBrush(this->backgroundRole(),
                     QBrush(pixmap.scaled(this->size(),
                                          Qt::IgnoreAspectRatio,
                                          Qt::SmoothTransformation)));

    this->setPalette(palette);
}


3.这里就是鼠标坐标的一些方法,可以方便的找到坐标位置
//鼠标点击事件
void MainWindow::mousePressEvent(QMouseEvent *event)
{
    //读取坐鼠标点击坐标点
    m_lastPoint = event->globalPos();
}

//鼠标移动事件
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
    //把移动的点记录下来
    int dx = event->globalX() - m_lastPoint.x();
    int dy = event->globalY() - m_lastPoint.y();

    m_lastPoint = event->globalPos(); //更新记录点

    move(x() + dx, y() + dy); //窗口移动到此处
}

void MainWindow::mouseReleaseEvent(QMouseEvent *event)
{
    //记录移动到的坐标
    int dx = event->globalX() - m_lastPoint.x();
    int dy = event->globalY() - m_lastPoint.y();

    move(x() + dx, y() + dy);
}

这一篇就这么多吧,下一篇说一下核心的内容,如何加载模块;也就是加载dll文件。
 




posted @ 2020-08-15 15:22  邱丑丑  阅读(429)  评论(0)    收藏  举报