欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Day2 QMainWindow/登陆界面制作

程序员文章站 2022-06-13 13:25:27
...

QMainWindow 包含菜单栏、工具栏、铆接部件等、状态栏、中心部件: 是许多应用程序额度基础

1 菜单栏:最多有一个
1 QMenuBar* bar = menuBar();//创建菜单栏
setMenuBar(bar);//放入窗口
QMenu * fileMenu = bar -> addMenu();//t添加菜单
QAction * newAction = fileMenu->addAction();//添加菜单项

2 工具栏: 可以有多个
QToolBar* toolBar = new QToolBar(this);//挂到对象树
addToolBar ->add(“默认停靠区域”, toolBar);

setMovable (bool) setFloatable(bool) //移动 浮动

3 状态栏 最多一个
1 QStatusBar
2 设置到窗口中 setStatusBar(stBar)
3 设置停靠信息 stBar->addWidget(label1);
stBar->addPermamentWidget(lable2);

4 铆接部件(浮动窗口/程序坞Dock)
QDockWidget
addDockWidget//默认停靠区域
设置后期停靠区域

5 设置核心部件(只能有一个)
setCentralWidget()

只能有一个的API用set开头, 可以有多个的API用 add
Day2 QMainWindow/登陆界面制作
仔细看鼠标位置: 是不是工具栏下边还有点东西

Day2 QMainWindow/登陆界面制作

Day2 QMainWindow/登陆界面制作

菜单文件

#include "mainwindow.h"
#include <QMenuBar>
#include <QDebug>
#include <QToolBar>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //重置窗口大小
    resize(600,400);

    //1 菜单栏控件(菜单栏最多只有一个)
    QMenuBar *bar = menuBar();
    //将菜单栏放到窗口中
    this->setMenuBar(bar);

    //1.2 创建菜单
    QMenu * fileMenu = bar->addMenu("file");
    QMenu * editMenu = bar->addMenu("edit");
    //1.3  创建菜单项
    QAction* newAction = fileMenu->addAction("新建");
    //可以添加分割线
    fileMenu->addSeparator();
    QAction* newOpen  = fileMenu->addAction("打开");



    //2  工具栏 可以有多个//默认在上边
     QToolBar * toolBar = new QToolBar(this);//挂到对象树上
     addToolBar(Qt::LeftToolBarArea,toolBar);  //设置默认区域

    //2.1 也可以设置允许的停靠范围(左右)
    toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
    //2.2设置是否允许浮动
    toolBar->setFloatable(false);
    //2.3 设置移动(设为false  那就不能移动,当然也不能浮动)
    toolBar->setMovable(true);
    //2.4 设置内容(与菜单栏共用)
    toolBar->addAction(newAction);
    toolBar->addSeparator();
    toolBar->addAction(newOpen);
    //2.5 也可以再设置一些控件
    QPushButton* bt =  new QPushButton("aa",this);
    toolBar->addWidget(bt);



    //3 状态栏 最多至只能有一个
       QStatusBar* stBar = new QStatusBar(this);//挂到对象树
    //3.1设置到窗口中
       setStatusBar(stBar);
    //3.2 放标签控件
       QLabel * label = new QLabel("提示信息",this);
       stBar->addWidget(label);//左侧提示
       QLabel* label2 = new QLabel("右侧提示",this);
       stBar->addPermanentWidget(label2);//右侧

       //4  铆接部件(浮动窗口/程序坞)可以有多个
       QDockWidget* dockWidget = new QDockWidget("浮动/程序坞Dock",this);
       addDockWidget(Qt::BottomDockWidgetArea,dockWidget);//注意:浮动窗口位置是相对核心内容的
        //设置后期停靠区域(上下)
       dockWidget->setAllowedAreas(Qt::BottomDockWidgetArea | Qt::TopDockWidgetArea);

        //5 设置核心部件(文本编辑为例) 只能有一个
        QTextEdit* edit = new QTextEdit("核心",this);
        setCentralWidget(edit);//放在窗口正中心
}

MainWindow::~MainWindow()
{

}

2 资源文件

1 将图片文件拷贝到 项目文件中
2 右键项目,添加新文件
Qt -> Resource file --> 资源文件起名 生成响应的文件.prc
open in edit 以编辑的形式打开 1 添加前缀 2 添加文件
3 使用: “: + 前缀+ 文件名”

3 对话框:

1 分类 : 模态化对话框 打开时不可以对其他对话框进行操作

QDialog dig(this)
dialog.exec()

非模态化 : 非模态化对话框: 可以同时对多个对话框操作
注意 f非模态化对话框最好设置个属性: 防止对话框造成内存泄漏 ,因为关闭对话框时并不释放空间

QDialog * dlg = new QDialog(this);
dlg->show ();
dlg->setAttribute(Qt::WA_DeleteOnClose);//55号属性:关闭对话框时立即释放资源

Menu Bar 唯一
ToolBar 不唯一
Dock Widget 不唯一
Central Widget 唯一
Status Bar 唯一

4 标准对话框:

头文件: #include
提问对话框:
帮助 ->QMessageBox 可以查看

									父亲   标题     提示      按键类型   默认关联回车键

QMessage::question(this,”quest“, ”提问“, QMessage::Save(), )

5 其他消息对话框

注意 : 头文件 : 用谁头文件就是谁

1 消息对话框 QMessageBox ::静态成员函数创建对话框
错误 、信息、提问、警告
提问 的 返回值Standar Button类型

2 其他标准对话框
2.1颜色对话框
QColor color = QColorDialog::getColor(QColor(255,0,0);//r g b三色

2.2 文件对话框
QFileDialog  ::getOpenFileName(this, "Open“, "path" );
2.3 字体对话框
bool flag;
	QFont font = QFontDialog ::getFont(& flag,Qfont("宋体",小二));

6 界面布局

目标:实现一个登陆窗口:
1 选取 widget 进行布局 水平 /垂直 /栅格布局

2 给用户名 、密码、 登陆 、退出按钮布局

3 默认窗口和控件之间有9像素空袭

4 可以修改为固定大小。min max 设置为一样大

Day2 QMainWindow/登陆界面制作
Day2 QMainWindow/登陆界面制作
Day2 QMainWindow/登陆界面制作

选中几行几列的框框 ,在 sizePolicy 中选择垂直,设置为Fixed可以缩小空的面积Day2 QMainWindow/登陆界面制作

看最终效果:

Day2 QMainWindow/登陆界面制作
最后 密码不想输入明文:

Day2 QMainWindow/登陆界面制作

点击输入框:找echoMode 修改就可

Day2 QMainWindow/登陆界面制作
看效果 : 怎么样 ;好玩吧!!

相关标签: Qt 登陆界面