当前位置: 首页 > article >正文

<4>, Qt窗口

目录

一,菜单栏

二,工具栏

三,状态栏

四,浮动窗口

五,对话框


一,菜单栏

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 创建菜单栏QMenuBar* menuBar = new QMenuBar(this);this->setMenuBar(menuBar);// 创建菜单QMenu* menu1 = new QMenu("文件(&F)");QMenu* menu2 = new QMenu("编辑(&E)");QMenu* menu3 = new QMenu("视图(&V)");menuBar->addMenu(menu1);menuBar->addMenu(menu2);menuBar->addMenu(menu3);// 子菜单QMenu* menuParent = new QMenu("父菜单");QMenu* menuChild = new QMenu("子菜单");menuBar->addMenu(menuParent);menuParent->addMenu(menuChild);// 分割线menuBar->addSeparator();// 创建菜单项QAction* action1 = new QAction("新建");QAction* action2 = new QAction("打开");QAction* action3 = new QAction("保存");QAction* action4 = new QAction("另存为");QAction* action5 = new QAction("退出");menu1->addAction(action1);menu1->addAction(action2);menu1->addAction(action3);menu1->addAction(action4);menu1->addAction(action5);// 给action添加信号connect(action1,&QAction::triggered,this,&MainWindow::handle1);connect(action2,&QAction::triggered,this,&MainWindow::handle2);connect(action3,&QAction::triggered,this,&MainWindow::handle3);connect(action4,&QAction::triggered,this,&MainWindow::handle4);connect(action5,&QAction::triggered,this,&MainWindow::close);
}

二,工具栏

    // 菜单项放到工具栏QToolBar* toolbar1 = new QToolBar();QToolBar* toolbar2 = new QToolBar();toolBar->addAction(action1);toolBar->addAction(action2);// 只能放左侧或者右侧toolbar2->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);// 不能浮动toolbar2->setFloatable(false);// 不能移动toolbar2->setMovable(false);

三,状态栏

    // 创建状态栏QStatusBar* statusBar = this->statusBar();this->setStatusBar(statusBar);// 显示临时消息//statusBar->showMessage("这是一个状态消息", 3000);// 给状态栏中添加子控件QLabel* label = new QLabel("这是一个QLabel");statusBar->addWidget(label);// 给状态栏添加进度条QProgressBar* progressBar = new QProgressBar();progressBar->setRange(0,100);progressBar->setValue(50);statusBar->addWidget(progressBar);// 给状态栏设置按钮QPushButton* button = new QPushButton("按钮");statusBar->addPermanentWidget(button);

四,浮动窗口

    // 给主窗口加子窗口QDockWidget* dockWidget = new QDockWidget();this->addDockWidget(Qt::LeftDockWidgetArea,dockWidget);// 浮动窗口也可以设置标题dockWidget->setWindowTitle("这是浮动窗口");// 给浮动窗口内部添加控件QWidget* container = new QWidget();dockWidget->setWidget(container);// 创建布局管理器,把布局管理器设置到QWidget中QVBoxLayout* layout = new QVBoxLayout;container->setLayout(layout);// 创建其他控件添加到layout中QLabel* label2 = new QLabel("这是个按钮");QPushButton* buttuon = new QPushButton("这是按钮");layout->addWidget(label);layout->addWidget(button);// 设置浮动窗口允许停靠的位置dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea);

五,对话框

void QDialog::on_pushButton_clicked()
{QDialog* dialog = new QDialog(this);dialog->setWindowTitle("这是一个对话框");// 设置对话框的尺寸dialog->resize(600,600);// 通过 show 方法就可以显示对话框dialog->show();// delete dialog;// 正确做法应该是把 delete 和关闭按钮的点击信号关联起来// 在用户去点击关闭的时候,触发 delete// Qt 为了让咱们写的方便,直接给 QDialog 设置了一个属性// 可以通过设置属性,完成上述效果dialog->setAttribute(Qt::WA_DeleteOnClose);
}
http://www.lryc.cn/news/2401066.html

相关文章:

  • 6.04打卡
  • 【基于SpringBoot的图书购买系统】操作Jedis对图书图书的增-删-改:从设计到实战的全栈开发指南
  • Ubuntu中TFTP服务器安装使用
  • Spring Boot微服务架构(十):Docker与K8S部署的区别
  • 接口重试的7种常用方案!
  • vue3:Table组件动态的字段(列)权限、显示隐藏和左侧固定
  • pikachu靶场通关笔记13 XSS关卡09-XSS之href输出
  • MCP客户端Client开发流程
  • 学习日记-day21-6.3
  • C语言探索之旅:深入理解结构体的奥秘
  • uniapp 开发企业微信小程序,如何区别生产环境和测试环境?来处理不同的服务请求
  • Dockerfile常用指令介绍
  • Docker 容器化:核心技术原理与实践
  • 不确定性分析在LEAP能源-环境系统建模中的整合与应用
  • 经典算法回顾之最小生成树
  • Ubuntu下实现nginx反向代理
  • c++ QicsTable使用实例
  • 在WordPress上添加隐私政策页面
  • 二维 根据矩阵变换计算镜像旋转角度
  • 你工作中涉及的安全方面的测试有哪些怎么回答
  • 阿里云ACP云计算备考笔记 (3)——云服务器ECS
  • Eigen实现非线性最小二乘拟合 + Gauss-Newton算法
  • 区块链技术:原理、应用与发展趋势
  • 从零开始:用Tkinter打造你的第一个Python桌面应用
  • Web开发主流前后端框架总结
  • Java Spring Boot 自定义注解详解与实践
  • GlobalSign、DigiCert、Sectigo三种SSL安全证书有什么区别?
  • 力扣面试150题--二叉搜索树中第k小的元素
  • SQL Server Agent 不可用怎么办?
  • css-塞贝尔曲线