zoukankan      html  css  js  c++  java
  • QML

    • 可以参考 OneNote for Windows 10 进行设计
      • 将原生窗口的非客户区隐藏, 在客户区自己添加一个 topBar, 在右侧添加最小化, 最大化和关闭窗口的按钮, 在中间添加 label 用于展示应用程序的名称
      • topBar 之下就是内容区域, 内容区域主要分为两个部分, 左侧部分是左侧的菜单栏, 右侧部分是页面, 用于显示内容。点击左侧菜单栏中的按钮即可切换右侧的页面, 并将选中的菜单栏设置为激活状态
    • 使用到的QML技术
      • 使用到的控件
        • Rectangle: 主要用于布局(充当背景, 起到HTML中div的作用, 如果充当div而不是背景色, 一般将背景置为透明)
        • Row: 也可以充当布局的功能, 一般用于布局中的每个元素大小相同
        • Columns: 可以充当布局的功能, 一般用于布局中的每个元素大小相同
        • Button: 最小, 最大和关闭按钮, 菜单栏中的按钮
        • Label: 显示标题等
        • Window: 主窗口
        • Image: 图片, 用于 Button 上比较多
        • Text
        • TextField: 可以用来制作搜索功能
      • UI 界面的层次结构
        • MainWindow(Window)
          • Background(Rectangle)
            • Container(Rectangle)
              • TopBar(Rectangle)
                • ApplicationName(Label)
                • Buttons(Rectangle)
                  • MinimizeButton(Button)
                  • MaximizeButton(Button)
                  • CloseButton(Button)
              • Content(Rectangle)
                • LeftMenu(Rectangle) 为了实现点击按钮会展开显示按钮的详细信息, 类似 OneNote, LeftMenu 的 clip 属性要设置成 true, 通过一些事件动态修改 LeftMenu 的 width 属性
                  • Button1(Button)
                  • Button2(Button)
                • Page(Rectangle)
                  • 显示动态加载的qml页面(可以使用Loader或者StackView, StackView加载动画)
      • 布局常用到的属性
        • Anchors.fill
        • Anchors.verticalCenter
        • Anchors.horizontalCenter
        • Anchors.left
        • Anchors.leftMargin
        • Width
        • Height
        • sourceSize.height
        • sourceSize.width
        • fillMode
        • Flags: 主要用于 Window, 这是 Qt.Window | Qt.FramelessWindowHint 可以取消非客户区
      • 自定义组件
        • 使用 property type name : value 定义属性, 当其他用户使用该组件的时候可以通过 name : value 的形式覆盖
        • 使用 QtObject { id: functions; function1(){}; function2() {}} 将需要用到的函数放在 QtObject 对象中, 方便管理
        • 使用 Connections { target: id; function onSignalName(arg){}} 保存与 Python 后端进行交互, 只要通过信号 Signal 的方式, Python 后端创建 Signal(str/填类型(这是为了传递参数给前端)) 对象, 在特定的时候调用 Signal.emit(参数), 就会启动前端中 Connections 中的 onSignal(参数) 函数并执行。其中 target: id用于相应 id 为 id 的组件的信号, 在 Python 中使用engine.rootContext().setContextProperty("id", ctx)设置
          • 前端可以直接使用Connections规定的id, 调用 id 中的方法
          • 后端需要通过信号.emit才能转到前端
      • 动画
        • 使用PropertyAnimation即可
      • 加强效果
        • 导入QtGraphicalEffects模块
        • 常用到的是ColorOverlay和DropShadow
          • ColorOverlay: 为图像上色
          • DropShadow: 添加阴影
      • 一定要实现的功能
        • 因为删除了非客户区, 导致窗口失去了拖动, 鼠标移动缩放的功能, 需要加上去
        • 使用到的API
          • 主窗口的 startSystemMove 和 startSystemResize
        • 使用到的组件
          • MouseArea
          • DragHandler

         

       

  • 相关阅读:
    www.insidesql.org
    kevinekline----------------- SQLSERVER MVP
    Sys.dm_os_wait_stats Sys.dm_performance_counters
    如何使用 DBCC MEMORYSTATUS 命令来监视 SQL Server 2005 中的内存使用情况
    VITAM POST MORTEM – ANALYZING DEADLOCKED SCHEDULERS MINI DUMP FROM SQL SERVER
    Cargo, Rust’s Package Manager
    建筑识图入门(初学者 入门)
    Tracing SQL Queries in Real Time for MySQL Databases using WinDbg and Basic Assembler Knowledge
    Microsoft SQL Server R Services
    The Rambling DBA: Jonathan Kehayias
  • 原文地址:https://www.cnblogs.com/megachen/p/14836304.html
Copyright © 2011-2022 走看看