Qt的6个简单小案例

目录

  • 一、登录界面
  • 二、菜单和工具栏
  • 三、键盘事件
  • 四、鼠标事件(滚轮...)
  • 五、 事件过滤(鼠标键)
  • 六、设置不规则窗体(透明度)

一、登录界面

基类是Dialog,添加一个作为主界面的MainWindow类
目录结构:
Qt的6个简单小案例_第1张图片

pro文件添加如下代码添加图标:

RC_ICONS = myico.ico

登陆界面设计:
Qt的6个简单小案例_第2张图片
dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"
#include "QMessageBox"//

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
}

Dialog::~Dialog()
{
    delete ui;
}

void Dialog::on_pushButton_2_clicked()//
{
    close();
}

void Dialog::on_pushButton_clicked()//
{
    if(ui->lineEdit->text().trimmed()=="abc123"&&ui->lineEdit_2->text().trimmed()=="123"){
        accept();
    }
    else {
        QMessageBox::question(this,tr("警告"),tr("用户名或密码错误!!!"),QMessageBox::Yes,QMessageBox::No);
    }
}

main.cpp

#include "dialog.h"
#include 
#include"mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    MainWindow w1;//
    if(w.exec()==QDialog::Accepted){//
        w1.show();//
    }//

    return a.exec();
}

mainwindow.cpp不改

二、菜单和工具栏

新建一个MainWindow,双击添加菜单名及子菜单名,回车应用,添加英文半角符==(&F)==可以在运行时通过快捷键 alt+F触发。
Qt的6个简单小案例_第3张图片
添加子菜单的图标:
双击下面的action
Qt的6个简单小案例_第4张图片
Qt的6个简单小案例_第5张图片
当然这里只是一个单纯的菜单的添加,并没有赋予功能,还可以添加一些功能,像是可以添加一个文本复制的功能,这里可以转到我的另一篇 Qt在MainWndow中的菜单栏中实现文本复制功能
注意:图片资源不要直接添加到项目路径下,可以放到上一级目录或上级目录之外,要不,,嘿嘿,,就加载不出来了。。。

三、键盘事件

~:https://blog.csdn.net/weixin_43624626/article/details/115493337

四、鼠标事件(滚轮…)

~:https://blog.csdn.net/weixin_43624626/article/details/115493337

五、 事件过滤(鼠标键)

转~:https://blog.csdn.net/weixin_43624626/article/details/115700771

六、设置不规则窗体(透明度)

1、新建一个Qt Widget应用,基类选择QWidget,类名可以保持默认。
2、向项目中添加一个背景透明的png图片
Qt的6个简单小案例_第6张图片
3、在widget.cpp中添加头文件
Qt的6个简单小案例_第7张图片

#include
#include
#include

4、进入widget.h源文件中,声明两个事件处理函数
Qt的6个简单小案例_第8张图片

protected:
    void paintEvent(QPaintEvent *);
    void mousePressEvent(QMouseEvent *);

5、然后在构造函数中添加如下代码,用来加载图片、设置窗口大小和调用setMask()函数为窗口设置屏蔽罩。
Qt的6个简单小案例_第9张图片

QPixmap pix;
pix.load("../buguize/touming.png");
resize(pix.size());
setMask(pix.mask());

6、再添加两个事件处理函数,一个用来图片的绘制,另一个用来鼠标单击图片关闭窗口。
Qt的6个简单小案例_第10张图片

void Widget::paintEvent(QPaintEvent *){
    QPainter painter(this);
    painter.drawPixmap(0,0,QPixmap("../buguize/touming.png"));

}
void Widget::mousePressEvent(QMouseEvent *){
    close();
}

7、构建并运行一下看看效果
Qt的6个简单小案例_第11张图片

你可能感兴趣的:(Qt,qt)