Day2 QMainWindow/登陆界面制作
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
仔细看鼠标位置: 是不是工具栏下边还有点东西
菜单文件
#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 设置为一样大
选中几行几列的框框 ,在 sizePolicy 中选择垂直,设置为Fixed可以缩小空的面积
看最终效果:
最后 密码不想输入明文:
点击输入框:找echoMode 修改就可
看效果 : 怎么样 ;好玩吧!!
上一篇: Accessa如何在表添加现有字段
推荐阅读
-
[终极巨坑]golang+vue开发日记【三】,登陆界面制作(二)
-
有验证码的登陆界面(ajax,ashx技术制作)
-
Day2 QMainWindow/登陆界面制作
-
制作个性化的WordPress登陆界面的实例教程,wordpress实例教程
-
php-PHP使用cookie制作登陆界面
-
制作个性化的WordPress登陆界面的实例教程,wordpress实例教程_PHP教程
-
利用jquery制作用户登陆界面
-
制作个性化的WordPress登陆界面的实例教程,wordpress实例教程_PHP教程
-
Android studio的UI界面布局学习(一)——登陆页面的布局制作
-
mysql、PDO、php和bootstrapt制作一个登陆界面外加后台处理